Add the chopped bacon to a large pot and cook until crispy and the fat has rendered. Transfer the bacon to a paper towel-lined plate. Remove about half of the bacon grease, leaving the rest in the pot.
Add butter, onion and garlic. Sauté for 2–3 minutes until fragrant and softened.
Sprinkle in the flour and stir well. Cook for 3–4 minutes to cook out the raw flour taste.
Slowly stir in the milk, heavy cream and chicken broth. Season to taste with salt, pepper, paprika, chicken bouillon, garlic powder, onion powder and Cajun seasoning if you’re feeling zesty.
Add the diced potatoes and bring everything to a boil, then reduce the heat to a simmer. Simmer for about 15 minutes, or until the potatoes are fork-tender.
Add the crispy bacon back in, reserving some for topping. Lightly mash some of the potatoes directly in the pot to naturally thicken the soup.
Turn the heat to low and immediately stir in 2–3 cups of shredded cheese until completely melted and creamy.
Serve hot and load it up with extra cheese, bacon, sour cream, green onions, jalapeños or all of the above.
