Cook the bacon in a large pot over medium heat until crispy. Remove and set aside, leaving the bacon fat in the pot for flavor.
Sauté the aromatics. Add butter to the pot. Once melted, add onions and cook for 3–4 minutes until softened. Add garlic and sauté for 1 minute.
Create the roux. Sprinkle the flour over the onions and stir for 1–2 minutes until thickened. This will help give the soup its creamy texture.
Add liquids. Slowly whisk in the chicken broth and milk until smooth and slightly thickened.
Add the potatoes. Peel the baked potatoes (optional) and roughly mash them into the soup. Stir well.
Add cheese and sour cream. Mix until melted and fully incorporated.
Season. Add salt, pepper, paprika, and garlic powder to taste.
Simmer. Cook for 10–15 minutes until the soup thickens and becomes creamy.
Serve hot topped with cheese, bacon, green onions, and sour cream.