Peel potatoes and chop into chunks. Cover potatoes with water in a pot, add a pinch of salt and bring to a boil. Boil potatoes until you can mash them with a fork (at least 10 minutes).
In a large mixing bowl, mash potatoes with the butter, sour cream, milk and the first half teaspoons each of salt and pepper. Set aside.
Heat olive oil in a cast iron skillet and sautee chopped onion for a few minutes until softened. Add the ground beef to the skillet and season with the second half teaspoon each of salt and pepper.
Once the beef is no longer pink, add the sweet corn, red beans, green chiles, beef broth, garlic powder, thyme, tomato paste, chipotle powder and cumin to the skillet, then stir to combine well. Let simmer on a low heat for a few minutes. (Tip: If your mixture appears too thick or dry, add more beef broth one tablespoon at a time until the desired consistency is achieved).
Remove skillet from heat. Spread an even layer of the mashed potatoes over the top of the mixture, covering the meat completely. Top with an even layer of Moterey Jack cheese.
Bake the entire thing at 400 degrees for 30 minutes. If you like a browned, crispier top, then broil for a couple minutes at the end. Top with more cheese and green onions to serve, if desired.