Cook the Potatoes: Pierce each potato several times with a fork and place them in the microwave. Cook on high for about 12 to 15 minutes until they are soft and fully cooked through. Allow them to cool slightly before handling. Slice the potatoes in half, peel off the skins, and cut the flesh into bite-sized pieces.
Prepare the Bacon: In a skillet set to medium-high heat, cook the bacon strips until they become crisp. Transfer the cooked bacon onto paper towels to drain the excess grease and cool. Save about one tablespoon of the bacon grease in the pan and discard the rest. Once cooled, crumble the bacon into small bits.
Sauté Aromatics and Make Roux: Melt the butter in a large pot over medium-low heat. Add the reserved bacon grease, minced garlic, and chopped onions. Cook gently for 2 to 3 minutes until the onions are soft and fragrant. Gradually whisk in the flour, stirring constantly for 1 to 2 minutes to cook out the raw flour taste and form a smooth roux.
Add Liquids and Simmer: Slowly pour in the milk and half-and-half, whisking continuously to keep the mixture smooth. Then stir in the chicken broth. Bring the mixture to a gentle simmer, stirring often. Season with salt, garlic salt, and black pepper. Let the soup cook at a low simmer for 5 to 7 minutes until it thickens slightly.
Combine Ingredients and Finish Soup: Reserve about 1/4 cup of the shredded cheeses and crumbled bacon if you want to use them as garnish later. Stir the remaining cheese, bacon, and sour cream into the soup base until well combined. Remove the pot from heat. Gently fold in the potato pieces, breaking them up slightly or leaving chunks whole based on your preference.
Serve: Ladle the soup into bowls and garnish with the reserved cheese, bacon, and fresh chopped chives. Serve hot and enjoy!