Cut up the bacon and add it to a soup pot. Fry over medium-high heat until crispy, about 10 minutes.
Peel and dice potatoes (or scrub and leave unpeeled) and chop the onion.
Remove bacon from pot, leaving about 2 tablespoons of bacon fat.
Add onion to pot and sauté for 5 minutes.
Stir in flour and cook for about 1 minute.
Slowly whisk in milk until the flour dissolves.
Add chicken broth, minced garlic, and diced potatoes.
Increase heat to high and scrape browned bits from the pot.
When soup begins to boil, reduce heat to low, cover pot slightly, and simmer for 20 minutes.
Mash potatoes slightly in the pot if desired.
Stir in sour cream, most of the cheddar cheese, and most of the bacon.
Season soup with salt and pepper to taste.
Serve topped with chopped scallions, remaining cheddar cheese, and leftover bacon.