Fry the BaconStep 1: In a large cast iron skillet, fry the bacon until it’s nice and crispy. Then transfer the bacon to a plate lined with paper towels. Once the bacon has cooled, break or cut it into small pieces.
Make the RouxStep 2: Heat a large dutch oven over medium-high heat. Add 10 tablespoons of butter or reserved bacon grease to the dutch oven. Whisk the flour into the butter and saute for 2 minutes to cook the flour, stirring occasionally.
Step 3: Then, gradually whisk in the milk and heavy cream. Whisk continually until slightly thickened. Gradually add the chicken broth and whisk to combine.
Add PotatoesStep 4: Add diced potatoes to the roux mixture and bring to a low simmer, stirring the soup every few minutes so that the bottom does not burn.
Step 5: Reduce heat to low and simmer until the potatoes are tender, about 20-25 minutes. (The smaller you dice the potatoes, the faster the soup will cook)
Add Remaining IngredientsStep 6: Once the potatoes are tender, stir in the spices, small chunks of room-temperature cream cheese, sour cream, and shredded cheese.
Step 7: Simmer the potato soup for another 10 minutes or until the cream cheese has completely melted.
Step 8: Add cooked bacon pieces. Taste and season with extra salt and pepper, if needed.
ServeStep 9: Ladle into bowls or large mugs with handles and serve warm, garnished with desired toppings.
