Heat the 2 tablespoons of butter in a 2-quart Dutch oven or large pot over medium heat; cook and stir onion until tender & translucent. Crumble the bacon into the onion and stir in the potatoes. Pour in enough water to cover mixture.
Simmer the bacon & potato mixture over low heat until potatoes are tender and flavors have blended, about 2 hours.
Combine the flour and remaining 1/2 cup butter in a saucepan over medium heat; cook and stir until mixture is smooth and lightly golden, about 5 minutes. Whisk the milk into the flour-butter mixture until thickened; add the cheese and stir until melted. Stir flour-butter mixture into soup until well combined. Season with salt & pepper.
Serve hot with your favorite baked potato toppings!