Gather all ingredients for the meatballs in a large bowl. Combine ground beef, breadcrumbs, egg, milk, onion, garlic powder, Worcestershire sauce, salt, and pepper. Mix until just combined and roll into 1-inch meatballs.
Heat olive oil in a skillet over medium heat. Add meatballs in batches and cook for 7-8 minutes until golden brown. Set aside.
In the same skillet, melt butter and sauté onions until soft. Sprinkle in flour and cook for a minute. Gradually whisk in beef broth, Worcestershire sauce, and Dijon mustard. Season with salt and pepper and let simmer until thickened.
Return meatballs to the skillet and coat in gravy. Simmer together for 5 minutes.
Boil cubed russet potatoes in salted water until tender. Drain and return to pot.
Add butter, milk, and sour cream to the potatoes. Mash until smooth and creamy. Adjust seasoning as necessary.