Add ground beef to a large dutch oven or stock pot. Cook over medium heat, breaking up the beef as it cooks. Cook until all beef is browned and no longer pink.
Pour the beef into a strainer, to drain out the excess grease and set the meat aside.
Return the empty pot to the stovetop and melt the butter over medium heat.
Add the onion, celery, and carrots. Stir in the Worcestershire sauce. Cook while stirring often until the vegetables are softened. Add in the garlic and cook an additional 30 seconds.
Stir the flour into the pot to coat the vegetables. Cook for 2-3 minutes while stirring.
Pour in the beef broth, stir and scrape the bottom of the pan with a wooden spoon to loosen any bits that may have stuck during cooking.
Add in the salt, pepper, dried parsley, crushed red pepper, diced potatoes, and cooked ground beef.
Bring soup to a simmer, turn heat to low to keep at a low simmer, cover the pot and let cook for 15-20 minutes until potatoes are softened.
Once potatoes are cooked, remove the pot from heat, stir in the milk, then add the cheese and stir while the cheese melts.
Serve while warm with optional toppings!