Cook the bacon in a large Dutch oven or another heavy soup pot over medium heat until browned and crispy. Transfer to a paper towel-lined plate, reserving the fat in the pan.
Add the butter, then the onion and cook over medium heat for 8-10 minutes, stirring often, or until the onion is softened but not browned.
Add the wine or beer if using. Bring to a boil and cook 1-2 minutes.
Add the chicken broth and potatoes. Bring to a boil, reduce heat to medium and cook for 10-12 minutes or until the potatoes are tender.
Place the flour in a bowl. Remove 1/2 cup of the cooking liquid from the pot and whisk it into the flour. Add small amounts of cooking liquid as needed to make a smooth slurry. Stir the cream or half-and-half into the slurry, then pour it into the pot.
Simmer for 2-3 minutes or until the soup thickens.
Reduce heat to low and gradually stir the shredded cheese by the handful (do not boil) into the soup. Season to taste with salt and black pepper.
Season to taste with salt and black pepper. Stir in half the bacon.
Serve in bowls garnished with the remaining bacon, sliced scallion and additional shredded Cheddar cheese if desired.