Heat Dutch oven over medium-high heat, add ground beef and cook 6-8 minutes until browned, breaking into crumbles. Drain excess fat, transfer beef to a plate.
In same pot, melt 1 tablespoon butter over medium heat. Add onion, carrots, and celery; sauté 5-6 minutes until softened. Stir in basil and parsley; cook 30 seconds.
Pour in chicken broth, scraping up browned bits. Return beef to pot, add potatoes. Bring to boil, reduce to medium-low, cover and simmer 12-15 minutes until potatoes are tender.
Meanwhile, melt remaining 3 tablespoons butter in small skillet over medium heat. Whisk in flour; cook 3-5 minutes until golden and nutty. Set aside.
Stir prepared roux into soup, bring to gentle boil, and cook 2-3 minutes until thickened, stirring frequently.
Reduce heat to low. Slowly add milk while stirring, then add ketchup, mustard, Worcestershire sauce, salt, pepper, and garlic powder. Heat through 2-3 minutes without boiling.
Add shredded cheddar one handful at a time, stirring after each addition until completely melted before adding more.
Remove pot from heat completely. Stir in sour cream until fully incorporated. Taste and adjust seasonings if needed.
Ladle into bowls and top with desired garnishes such as bacon, tomatoes, pickles, extra cheese, or green onions. Serve immediately.