Cook the ground beef in a large pot over medium high heat until no pink remains, about 5-7 minutes.
While the ground beef browns, chop the onion, celery, and carrot into 1/4-inch dices (this will allow the veggies to cook quicker).
Drain off the grease from the ground beef and remove from the pot.
Melt 1 tablespoon of butter in the pot over medium heat and add the onion, carrot, and celery. Cook until the veggies are tender, about 8-10 minutes.
While the veggies cook, peel and chop the potatoes into 1/2-inch dices.
When the veggies are tender, add the ground beef, potatoes, broth, basil, and parsley. If the broth doesn't cover the mixture, add just enough water to barely cover.
Bring the mixture to a boil, then reduce heat to low, simmering 15-20 minutes or until potatoes are tender.
In a separate bowl, melt 3 tablespoons of butter and stir in the flour, making a thick paste.
Add the paste to the soup, stirring well until the soup has thickened slightly, 1-2 minutes.
Add the Velveeta, milk, salt, and pepper and cook until the cheese is melted.
Add toppings, if desired, and serve.
Enjoy!