Cook bacon in a large Dutch oven over medium heat until crisp. Transfer bacon to a paper towel-lined plate, reserve 1 tbsp drippings.
Add butter to drippings, sauté onion until soft (5–7 minutes), then add garlic and cook 30 seconds.
Add diced potatoes and broth, bring to a simmer, cover, and cook until potatoes are tender (15–18 minutes).
Use a potato masher to mash some potatoes in the pot for a chunky-thick texture, or blend 1–2 cups for creamier soup.
Stir in milk, cheddar, salt, and pepper over low heat until cheese melts. Reheat gently; do not boil.
Fold in most of the bacon, save a little for topping, and garnish with chives.