Preheat the oven to 375°F (190°C).
In a large skillet, heat the olive oil over medium heat. Add the diced onion and sauté until translucent, about 5 minutes. Stir in the minced garlic and cook for an additional minute.
Add the ground beef or turkey to the skillet. Cook until browned, breaking it apart with a spoon, about 7-10 minutes. Drain any excess fat.
Stir in the taco seasoning, black beans, corn, diced tomatoes, and tomato sauce. Season with salt and pepper to taste. Simmer for 5 minutes, allowing the flavors to meld.
In a 9x13 inch baking dish, spread a thin layer of the meat mixture on the bottom. Layer 4 corn tortillas over the meat mixture, followed by half of the remaining meat mixture, half of the cheddar cheese, and half of the Monterey Jack cheese.
Repeat the layers, starting with 4 more tortillas, the remaining meat mixture, and the remaining cheeses. Finish with a final layer of tortillas on top.
Spread the sour cream evenly over the top layer of tortillas and sprinkle with any remaining cheese.
Cover the baking dish with aluminum foil and bake for 25 minutes. Remove the foil and bake for an additional 15 minutes, or until the cheese is bubbly and golden.
Let the lasagna cool for 10 minutes before slicing. Garnish with chopped cilantro if desired.