Cook ground beef over medium heat in a large dutch oven pan, breaking it up into crumbles as it cooks.
Remove from pan and discard excess fat.
Add a tablespoon of butter to the pan and sauté diced onion, shredded carrots, diced celery, dried basil and parsley flakes until the vegetables are tender, about 10 minutes.
Add cubed potatoes, cooked ground beef and chicken broth to the pan. Increase heat and bring mixture to a boil.
Reduce heating simmer, covered, until potatoes are tender, about 20-25 minutes.
While the soup simmers, add 3 tablespoons butter to a skillet. Melt over medium heat. Whisk in ¼ cup flour to make a roux. Stir constantly until the roux is lightly browned, about 3-4 minutes.
Add the roux to the soup and continue to simmer soup until it starts to thicken, about 3-5 minutes.
Add cubed Velveeta cheese, and stir until melted.
Reduce heat and add milk, salt and pepper. Cook over low heat until soup is heated through.
Remove pan from from heat, and stir in the sour cream. Stir until fully combined with the soup.
Top each serving with freshly cracked black pepper and crispy fried onion rings, or bacon bits or freshly chopped parsley or all of them.