To prepare sauce: Roast poblano (or bell) pepper directly over the flame of a gas burner, turning frequently with tongs, until evenly charred. (Alternatively, char under the broiler, turning once or twice, for 5 to 7 minutes total.) Transfer to a deep bowl, cover with plastic wrap, and set aside to steam for 10 minutes.
Meanwhile, heat 2 teaspoons oil in a medium saucepan over medium heat. Add yellow onion, garlic, 1 teaspoon salt, cumin, chili powder, paprika and ground chipotle (if using) and cook, stirring, until the vegetables have softened, about 5 minutes. Remove from the heat.
Peel the pepper, discard the stem and seeds, and chop. Add to the saucepan along with chopped tomatoes, broth and chopped cilantro.
Return to medium heat and cook, uncovered, at a steady simmer, until the liquid has reduced slightly and the tomatoes have broken down, 10 to 15 minutes.
Transfer to a blender and puree. (Use caution when pureeing hot liquids.).
To prepare filling: While the sauce simmers, place bell peppers, mushrooms and red onion in a single layer on a rimmed baking sheet. Drizzle with 4 1/2 teaspoons oil and sprinkle with 1/4 teaspoon salt and pepper. Roast, stirring halfway through, until the vegetables are tender and browned in spots, about 15 minutes total. Transfer to a large bowl and stir in beans. Reduce oven temperature to 375 degrees.
To prepare enchiladas: Spread 1/2 cup of the sauce in a 9-by-13-inch baking dish. Place a skillet over medium heat. Coat both sides of a tortilla with cooking spray. Heat in skillet for 5 to 10 seconds per side, adjusting the heat if the pan gets too hot. Spread 1/3 cup of the filling and 1 tablespoon of the sauce down the middle of the tortilla and roll it up to enclose the filling. Place seam-side down in the baking dish. Repeat with the remaining tortillas, filling and sauce. Spread the remaining sauce and filling over the enchiladas.
Bake, uncovered, until hot, about 15 minutes. Serve garnished with diced fresh tomato and cilantro leaves, if desired.