In a large soup pot or Dutch Oven, cut the bacon into small pieces and cook over medium heat.
Once the bacon has browned, remove the pieces from the stove, and drain on paper towels.
Remove all except 2 tablespoons of bacon grease from the pot.
Add the onions, garlic, and butter to the pot.
Allow the onions to cook until they are translucent.
Sprinkle in the flour and whisk to combine well.
Add the chicken broth or stock along with the cubed potatoes, and the half & half.
If you are using cream of chicken, add it in now.
Bring to a boil and cook for 10 minutes.
Reduce the heat to a simmer and either use an immersion blender or a countertop blender to blend half of the soup.
If using a countertop blender, carefully remove the soup from the stove and vent the soup while blending to prevent spills and spewing. Add the soup back to the stove if using this method.
Stir in the cheddar cheese and the bacon pieces.
Simmer for another 10-15 minutes, stirring occasionally.
Garnish with additional bacon pieces, scallions, and sour cream.