Preheat your oven's broiler and set the rack about 6 inches from the heat source. Line a baking sheet with aluminum foil. Arrange the poblano chiles on the sheet and roast for 10-15 minutes, turning them occasionally with tongs until the skins are blackened and charred. Immediately transfer the roasted peppers to a plastic bag and let them steam for about 10 minutes to make peeling easier. Once cool enough to handle, peel off the skins, remove the stems, open the chiles, and carefully remove all seeds.
Preheat your oven to 350°F (175°C). Lightly coat a 3-quart baking dish with nonstick spray. Lay half of the peeled and seeded poblano chiles from Step 1 in a single layer on the bottom of the dish. Sprinkle 1 cup of freshly shredded Monterey Jack cheese and 1/2 cup of freshly shredded cheddar cheese evenly over the chiles. Repeat by adding the remaining chiles in another layer, followed by another 1 cup of shredded Monterey Jack cheese and 1/2 cup of shredded cheddar cheese.
In a medium bowl, whisk together the eggs, whole milk, flour, baking powder, onion powder, garlic powder, salt, and black pepper until thoroughly combined and no lumps of flour remain. Pour this egg mixture evenly over the cheese and chiles in the baking dish. I always make sure to pour slowly, so the custard fills in all the nooks and crannies for an even texture.
Place the assembled casserole in the preheated oven and bake for about 45 minutes, or until the center is puffed, the edges are golden, and the eggs are fully set. For best results, avoid opening the oven frequently during baking to ensure even rising.
Remove the casserole from the oven and let it cool for 5-10 minutes before slicing it into squares. Serve each piece with a dollop of sour cream, a spoonful of salsa, and a sprinkle of freshly chopped cilantro. For a burst of freshness, I like to add extra cilantro right before serving—it makes the flavors pop!