In a large Dutch oven or heavy-bottomed pot, cook the chopped bacon over medium heat until crisp, about 8-10 minutes. Use a slotted spoon to transfer the bacon to a paper towel-lined plate, leaving the drippings in the pot.
Add the butter and chopped onion to the bacon drippings. Cook over medium heat, stirring occasionally, until the onion is soft and translucent, about 5 minutes. Add the minced garlic and cook for 1 more minute until fragrant.
Sprinkle the flour over the onion mixture and whisk constantly for 1 minute to form a paste, which will help thicken the soup.
Gradually pour in the chicken broth while whisking continuously to avoid lumps. Add the diced potatoes, salt, and pepper. Bring the soup to a boil, then reduce the heat to a simmer. Cook for 15-20 minutes, or until the potatoes are very tender and can be easily pierced with a fork.
Use a potato masher to lightly mash some of the potatoes directly in the pot to thicken the soup to your desired consistency, leaving some chunks for texture.
Reduce the heat to low. Stir in the heavy cream, sour cream, and shredded cheddar cheese until the cheese is fully melted and the soup is smooth and creamy. Do not allow the soup to boil after adding the dairy.
Taste and adjust seasoning with more salt and pepper if needed. Ladle the soup into bowls and garnish with the reserved crispy bacon and fresh chives.