Cut bacon with kitchen shears into bite size pieces and cook in dutch oven or soup pot over medium heat until crispy.
Remove bacon pieces to paper towel lined plate. Drain grease, reserving 1 tablespoon in the pot.
Add butter and onions to bacon grease. Sauté the onions over medium heat until they are translucent, about 4-5 minutes.
Add garlic and sauté another minute until garlic is fragrant.
Stir in flour and cook another 1-2 minutes.
Slowly add chicken broth while stirring the whole time and scraping the bottom of the pan.
Gently add in potatoes, and stir well. Increase heat to medium-high and bring soup to a boil.
Once boiling, reduce heat to low, let simmer and stir occasionally until potatoes are fork tender, about 10-15 minutes depending on size of potatoes.
Stir in heavy cream and sour cream and heat through, but do NOT boil.
Add shredded cheeses a handful at a time, stirring each time to completely melt the cheese.
Stir in parsley, salt and black pepper.
Serve with bacon pieces, extra shredded cheese, sliced green onions, chopped chives and sour cream.