Make the Filling:
In a large skillet, cook the ground beef over medium heat until browned. Add the diced onion and minced garlic, cooking until softened. Stir in the chili powder, cumin, smoked paprika, salt, and pepper. Mix well and cook for another 2-3 minutes. Add black beans and corn if desired. Set aside.
Prepare the Sauce:
In a saucepan, heat olive oil over medium heat. Whisk in the flour and cook for 1-2 minutes until lightly golden. Stir in chili powder, cumin, garlic powder, and onion powder. Gradually whisk in the broth and tomato paste, ensuring no lumps form. Simmer for 5-7 minutes until thickened. Adjust seasoning with salt.
Assemble the Enchiladas:
Preheat the oven to 375°F (190°C). Spread a thin layer of enchilada sauce on the bottom of a 9x13-inch baking dish. Place a tortilla on a flat surface, spoon some beef filling onto the center, sprinkle with cheese, and roll tightly. Place seam-side down in the baking dish. Repeat with the remaining tortillas and filling.
Top and Bake:
Pour the remaining enchilada sauce evenly over the rolled tortillas. Sprinkle with the remaining cheese. Cover with foil and bake for 20 minutes. Remove the foil and bake for an additional 10 minutes, or until the cheese is melted and bubbly.
Garnish and Serve:
Let the enchiladas cool for a few minutes before garnishing with fresh cilantro. Serve with sour cream, guacamole, or salsa if desired.