Cook the beef and onions: In a large skillet over medium-high heat, cook the ground beef and diced onion together until the beef is fully browned and the onions are tender. Drain any excess grease.
Make a roux: Sprinkle the all-purpose flour evenly over the beef mixture and cook for 1 to 2 minutes, stirring constantly to remove the raw flour taste.
Add the liquid: Slowly pour in the beef broth and Worcestershire sauce while stirring vigorously to prevent lumps from forming. Add the garlic powder, salt, and black pepper.
Simmer and thicken: Bring the mixture to a simmer, then reduce the heat to low and cook for 5 to 7 minutes, stirring occasionally, until the gravy is rich, smooth, and thickened to your liking.
Serve: Spoon the hot ground beef and rich brown gravy generously over a bed of warm mashed potatoes and serve.