Begin by adding the bacon to a cold dutch oven or large pot. Turn heat to medium low and slowly cook the bacon until crispy, about 10-15 minutes. Once crispy, remove from the pan and drain on a paper towel.
Add diced onion to the pot and stir to coat in bacon grease. Season with ½ teaspoon salt and ½ teaspoon black pepper. Cook onions for 5 minutes, until soft and translucent.
Next, add the garlic and cook for 1 minute.
Add in the flour and whisk until all of the onions are coated in flour and there is no loose flour left in the pot. Raise the heat to medium, then slowly begin adding the milk, while whisking, continually. The liquid will begin to thicken as you whisk. Once all the milk has been added, pour in the broth and continue whisking.
Once the liquid has slightly thickened, season with ½ teaspoon salt,½ teaspoon black pepper, and 1 teaspoon paprika. Add the potatoes and stir to combine.
Bring the mixture to a boil, then reduce to a simmer and cook, partially covered, for 25-30 minutes. Once the potatoes are tender throughout (a knife can easily be inserted), the soup is ready to be blended. Stir the soup occasionally while cooking, so nothing burns.
To blend the soup, remove it from the heat and insert an immersion blender and blend until you reach your desired consistency. The soup can also be blended in a regular blender in batches, but be careful when blending hot liquids. Additionally, if you dont have a blender, you can use a potato masher to mash up the soup.
Once the soup has been blended, taste and adjust for seasoning. It usually needs about another 1 teaspoon of salt at this time, but that will depend on how salty your broth is. If the soup is too thick, you can add more broth ½ cup at a time until it reaches your desired thickness.
Finally, add in 8oz of the shredded cheese and stir to combine.
Serve, topped with a dollop of sour cream, crumbled bacon, chopped scallions and more cheese.