Cook the Beef
In a large pot or Dutch oven over medium heat, cook the ground beef for 6–8 minutes, breaking it up as it browns. Once no longer pink, drain excess fat and set the beef aside.
Sauté the Vegetables
In the same pot, melt 1 tablespoon of butter. Add the diced carrots, celery, onions, basil, and parsley. Sauté for about 10 minutes, or until the vegetables are tender.
Simmer the Soup
Add the diced potatoes, cooked ground beef, and chicken broth to the pot. Bring to a boil, then reduce the heat to low, cover, and simmer for 10–12 minutes, or until the potatoes are fork-tender.
Thicken the Soup
In a small saucepan, melt the remaining 3 tablespoons of butter over medium-low heat. Stir in the flour and cook for 3–5 minutes, stirring continuously, until it starts to bubble. Stir this roux into the soup and bring it to a gentle boil. Cook for 2 minutes to thicken.
Add Cheese and Finish
Reduce heat to low. Stir in the Velveeta cheese, whole milk, salt, and pepper. Once the cheese is fully melted, remove the pot from heat and stir in the sour cream.
Serve and Enjoy
Ladle the soup into bowls and top with your choice of onion rings, green onions, or crumbled bacon. Serve warm.
Notes
You can substitute Velveeta with cheddar, Monterey Jack, or Colby cheese.
Store leftovers in an airtight container in the fridge for up to 4 days.
Reheat gently on the stovetop over low heat, stirring occasionally. Avoid boiling to prevent curdling.
Soup can be frozen for up to 2 months, though texture may change slightly due to the dairy.