In a cast iron skillet (or other oven-proof large skillet) heat the olive oil over medium heat. Cook the onions while stirring until they begin to soften, 2 to 3 minutes.
Add the ground beef to the pan and cook while breaking it up with a spatula until almost brown all the way through, 4 to 5 minutes. Add the bell and hot peppers and cook until soft, another 2 to 3 minutes.
Sprinkle the seasonings onto the beef mixture and stir until well combined. Add the diced tomatoes and corn kernels and bring to a light boil then turn off the heat.
Meanwhile, in a small pot combine the milk, cornmeal, butter, and salt. Bring to a light boil while whisking constantly. As soon as the mixture begins to thicken, only takes a minute or two, scrape out of the pot and spread on top of the meat mixture into one even layer.
Top with shredded cheese and bake until golden brown, about 20 minutes. If preparing in advance may take longer to bake if putting it in the oven cold.
Garnish with sour cream, avocado and/or cilantro (if desired) and serve.