In a large pot over medium-high heat, cook the bacon until crisp. Transfer to a paper towel-lined plate to drain and cool. Reserve up to a 1/2 cup of bacon fat and leave it remain in the pan.
Add garlic and onion and cook for 2 to 3 minutes, or until the onion is slightly caramelized. Slowly whisk the flour into the pan and stir for 1 to 2 minutes.
Slowly whisk in the milk and heavy cream. Keep whisking until smooth. Gradually add in the chicken stock.
Add in the potatoes, paprika, salt and pepper. Bring to a simmer and cook until the potatoes are tender, approximately 25 minutes.
Blend half the potatoes till smooth by either using a food processer or use an immersion blender. If you prefer to have your soup with no chunks of potaoes, you can full blend all the potatoes at this step.
Place 1/2 cup sour cream into a small bowl and slowly stir about a 1/2 cup of soup into the sour cream. This helps temper the sour cream and prevents it from curdling. Add the mixture back to the pot of soup and stir.
Add back in all but the 1/2 cup of reserved bacon (for topping) back into the pot and stir.
The soup is ready to enjoy! Top with additional toppings such as bacon, sour cream, chives, cheddar cheese or anyother fun toppings you can think of!
Bone apple teeth!