Cook the bacon: In a large pot or Dutch oven over medium heat, cook the chopped bacon until crisp, 7–9 minutes. Transfer bacon to a paper towel–lined plate.
Leave about 2 tablespoons of bacon fat in the pot.
Sauté aromatics: Add the onion to the pot and cook until translucent, 4–5 minutes. Stir in the garlic and cook 30 seconds, just until fragrant.
Make the roux: Add butter to the pot. Once melted, sprinkle in the flour.
Whisk and cook 1–2 minutes to remove the raw flour taste. The mixture should be thick and bubbling.
Add liquids and potatoes: Gradually whisk in the broth to avoid lumps. Add the potatoes, a generous pinch of salt, and pepper.
Bring to a boil, then reduce to a gentle simmer. Cover and cook until the potatoes are very tender, 15–20 minutes.
Partially mash: Use a potato masher to mash about half the potatoes directly in the pot. Leave the rest in chunks for texture.
Stir in dairy: Reduce heat to low.
Stir in the milk and sour cream. Do not boil after adding dairy. Taste and adjust seasoning with salt, pepper, and optional smoked paprika, hot sauce, or Worcestershire.
Add cheese off heat: Remove the pot from heat.
Stir in most of the cheddar until melted and smooth. If the soup seems too thick, add a splash more milk or broth to loosen.
Serve and top: Ladle into bowls. Top with the reserved bacon, extra cheddar, a dollop of sour cream, and a sprinkle of chives.