Heat a large pot or Dutch oven over medium heat. Add the butter. Once melted, add the onions and cook until softened and translucent, about 3-4 minutes, stirring frequently.
4 tablespoons butter, 1 medium onion
Stir in the garlic and cook another 30-60 seconds, stirring constantly.
2 cloves garlic
Sprinkle in the flour and continue to cook, stirring often, until just starting to brown, about 2 minutes.
1/4 cup all purpose flour
Whisk in the stock, breaking up any lumps, and add the potatoes. Increase the heat and bring to a boil. Cook until the potatoes are fork-tender, about 10-12 minutes, stirring often.
4 cups chicken stock, 3 pounds potatoes
Once the potatoes are tender, stir in the milk, heavy cream and sour cream. Cook 1-2 minutes to heat through.
2 cups milk, 1 cup heavy cream, 1/2 cup sour cream
Stir in 3/4ths of the cheese until melted and fully blended. Reserve the rest for serving.
8 ounces cheddar cheese
Serve topped with the reserved cheddar cheese, bacon, chives and additional sour cream, if desired.
6 slices bacon, chives