To a large dutch oven or pot add the bacon and cook through. Once cooked remove to a separate plate lined with paper towel and set to the side. Save the bacon grease in the pot.
Add the diced onion into the pot and saute for 4-5 minutes or until it gets soft. Stir in the minced garlic. Stir in the flour and let it get a golden color. Stir in the diced potatoes, broth, milk, heavy cream, salt, pepper, and chili powder let simmer for 10 minutes.
Once the potatoes are tender using a potato masher mash some of the potatoes in the soup. Stir in the sour cream, cheese, and half of the cooked bacon. Let the soup continue to simmer for an additional 3 minutes. Enjoy! Top your bowl of soup with the remaining bacon, shredded cheddar cheese, sliced green onions, and sour cream if desired!