Cook the Bacon:
In a large pot, cook chopped bacon over medium heat until crispy. Remove bacon and set aside, leaving the bacon grease in the pot.
Sauté Onion and Garlic:
Add diced onion to the pot and sauté until soft and translucent. Add minced garlic and cook for another minute until fragrant.
Make the Roux:
Add butter to the pot and let it melt. Stir in flour and cook for 2-3 minutes, stirring constantly, to form a roux.
Add Liquid:
Gradually whisk in chicken broth and milk, ensuring there are no lumps. Bring the mixture to a simmer.
Add Potatoes:
Add diced potatoes to the pot. Cook until the potatoes are tender, about 15-20 minutes.
Season the Soup:
Season with smoked paprika, cayenne pepper, salt, and black pepper to taste.
Blend the Soup (Optional):
For a smoother texture, use an immersion blender to blend the soup until smooth, or transfer portions of the soup to a blender and blend until smooth. Be careful with hot liquids!
Add Sour Cream and Cheese:
Stir in sour cream and shredded cheddar cheese until melted and well combined.
Serve:
Ladle the soup into bowls and top with crispy bacon pieces and chopped green onions.