6 slices bacon, diced
4 tablespoons unsalted butter
2 large leeks, trimmed, leaving white and light green parts only, chopped
2 garlic cloves, minced
¼ cup all-purpose flour
2 pounds russet potatoes, peeled and cut into 1-inch cubes
1 quart chicken stock
1 cup milk
1 cup heavy cream
2 teaspoons kosher salt
½ teaspoon freshly cracked black pepper, plus more for serving
½ cup grated sharp white cheddar cheese, plus more for serving
2 green onions, thinly sliced for serving
Place the bacon in a large pot. Set the pot over medium heat and cook, stirring occasionally, until the bacon crisps and the fat is rendered, 5 to 7 minutes. Using a slotted spoon, transfer the bacon to a paper towel–lined plate, reserving the fat in the pot.
Add the butter to the bacon fat and cook until melted. Stir in the leeks and garlic and cook until leeks are softened, about 4 minutes. Sprinkle the flour over the mixture and stir until incorporated, about 1 minute.
Add the potatoes, chicken stock, milk, and heavy cream. Bring to a boil over high heat, then reduce the heat to a simmer. Cover and cook for 10 minutes or until the potatoes are very soft.
Transfer half the liquid to the base of a blender, let cool briefly, and blend until smooth. Return the blended soup to the pot. (Alternatively, transfer half the liquid to a bowl. Use an immersion blender to blend the remaining liquid in the pot until smooth. Return the unblended soup to the pot.) Stir in the bacon, salt, pepper, and cheese until melted.
Ladle the soup into bowls. Top with green onions, pepper, and cheese before serving.