Preheat your oven to 350°F (175°C).
In a large mixing bowl, combine ground beef, bread crumbs, chopped onion, milk, eggs, Worcestershire sauce, barbecue sauce, garlic powder, salt, and black pepper. Mix with your hands until well combined.
Shape the mixture into a loaf and place it in a loaf pan. If desired, top with shredded cheddar cheese.
In a large pot, bring water to a boil and cook the diced potatoes until tender (about 15-20 minutes). Drain the potatoes and return them to the pot.
Add sour cream, grated cheddar cheese, milk, green onions, garlic powder, salt, and black pepper to the potatoes. Mash until creamy and well combined.
Grease a 9x13 inch baking dish with butter and spread the mashed potato mixture evenly in the dish.
Place both the meatloaf and potato casserole in the oven. Bake the meatloaf for 60 minutes or until the internal temperature reaches 160°F (70°C). The potato casserole can bake for the same time, allowing it to heat through.
Once cooked, let the meatloaf rest for 5-10 minutes before slicing. Serve alongside the creamy potato casserole.