Place chopped bacon in a large pot over medium heat and cook until bacon is crisp and browned. Remove bacon pieces and set aside, leaving the fat in the pot.
Add butter, chopped onion, celery, and carrots to the fat and sauté over medium heat until veggies are tender about 5 minutes.
Add garlic and sauté for about 1 minute.
Sprinkle the flour over the ingredients in the pot and stir until smooth. Sauté for a couple minutes.
Add the chicken broth, potatoes, milk, salt, and pepper to the pot.
Bring to a simmer and cook until potatoes are soft.
Reduce heat to low and partially blend with an immersion blender. I like the texture of mostly smooth but with still some potato chunks. Alternatively you can blend half the soup in a blender if you don’t have an immersion blender.
Add the heavy cream, sour cream, parsley, and cooked bacon and stir well.
Allow soup to simmer for 15 minutes before serving.
Ladle into bowls and top with sour cream, shredded cheddar cheese, and chives or green onions.