Place the cubed potatoes in a saucepan and cover with water. Bring to a boil and cook until tender, about 15 minutes. Drain the potatoes.
Return the potatoes to the pan. Add 2 tablespoons butter, milk, and half the cheddar cheese. Mash until smooth. Stir in salt and pepper. Set aside.
Preheat the oven to 375 degrees. Melt the remaining 2 tablespoons butter in a large skillet over medium heat.
Add the diced onion to the skillet and cook until softened, about 5 minutes. Stir in the chopped meatloaf, frozen vegetables, and beef gravy. Cook until heated through, about 5 minutes. Season with the remaining salt and pepper.
Transfer the meat mixture to a baking dish. Spread the mashed potatoes evenly over the top. Sprinkle with the remaining cheddar cheese.
Bake for 20 minutes until the topping is lightly browned and the filling bubbles at the edges. Let rest for 5 minutes before serving.