Prepare the pasta shells: Cook the jumbo pasta shells according to the package instructions. Drain and set aside to cool slightly so you can handle them without burning your hands.
- Cook the filling: In a large skillet, heat a little oil over medium heat. Add the chopped onion and cook until softened, about 3-4 minutes. Add the ground beef and cook, breaking it up with a spoon until browned and fully cooked. Drain any excess fat.
- Season the meat: Stir in the taco seasoning and cook according to the packet instructions (usually adding a bit of water). Add the black beans and corn (if using) to the meat mixture and cook for another 2 minutes. Taste and adjust with salt and pepper.
- Stuff the shells: Preheat your oven to 375°F (190°C). Fill each cooked pasta shell with the taco meat mixture, pressing down gently to pack the filling.
- Assemble the dish: Spread 1/2 cup of enchilada sauce (or marinara) in the bottom of a baking dish. Arrange the stuffed shells in a single layer over the sauce. Pour the remaining sauce over the stuffed shells and sprinkle the shredded cheddar and mozzarella cheeses on top.
- Bake: Cover the baking dish with aluminum foil and bake for 20 minutes. Then, remove the foil and bake for an additional 5-10 minutes until the cheese is melted and bubbly.
- Garnish and serve: Remove from the oven and let the dish cool slightly. Serve with a dollop of sour cream and garnish with fresh cilantro or chopped green onions.