Cook bacon: In a large pot or Dutch oven, cook chopped bacon over medium heat until crispy. Remove and set aside, leaving about 1 tbsp of bacon fat in the pot.
Make the roux: Stir in flour and cook for 1 minute to form a roux. Slowly whisk in chicken broth to avoid lumps.
Add potatoes: Stir in diced potatoes and bring to a gentle boil. Reduce heat and simmer for 15–20 minutes, or until potatoes are fork-tender.
Mash or blend (optional): Use a potato masher for a chunkier texture, or an immersion blender for a smoother soup (you can also blend just half the pot for a mix of both).
Add dairy & finish: Stir in milk, sour cream, and shredded cheese. Cook on low heat (don’t boil) until cheese melts and soup is creamy. Season with salt, pepper, and paprika.