Line a baking sheet with aluminum foil and place poblano peppers on top. Set your oven rack directly underneath the broiler and turn the broiler on high.
Broil poblanos in the oven for 5 minutes, or until the skin is blackened and blistered. Carefully flip them over and broil for another 5 minutes, or until the skin is blackened and blistered on all sides.
Remove them from the oven, loosely cover the baking sheet with aluminum foil or plastic wrap to keep in some of the heat to help them steam, and let them sit for 5 minutes.
Pull and rub off as much of the loose skin on the peppers as possible. It doesn't have to be perfect. (View some step-by-step photos on how to roast poblano peppers.)
Transfer poblanos to a cutting board, discard the stems and seeds. Cut poblanos into strips and set aside.
Heat butter in a large skillet over medium-high heat. Add onions and cook for 5 minutes, until softened and translucent.
Add garlic and cook for 30 seconds, stirring frequently.
Add roasted poblano pepper strips, Mexican crema, and salt. Stir together to combine and cook for 2 more minutes.
Add shredded cheese and stir together until the cheese completely melts. Remove from heat and serve immediately in warm tortillas or with tortilla chips.
Notes
I highly recommend using Mexican crema if you can find it. More and more large grocery stores are starting to carry it. It’s typically found in the dairy aisle near the cheeses and milks. If you can’t find it, a good substitute is crème fraîche. Or better yet, you can make your own Mexican crema at home.
Oaxaca cheese is recommended because it melts smoothly and gives the dish a luxurious stretch. You can typically find Oaxaca cheese in the specialty cheese section or the dairy section in your grocery store. Specialty Hispanic grocers also commonly carry it. If you can’t find it near you, you can use monterey jack cheese or mozzarella.