Place the bacon pieces in a large Dutch oven or soup pot over medium heat and cook until crisp and browned.
Remove the bacon and set it aside, leaving the rendered fat in the pot.
Add the butter and chopped onion to the pot, cooking over medium heat until the onions are tender, about 3 to 5 minutes.
Stir in the minced garlic and cook for about 30 seconds, just until fragrant.
Sprinkle the flour over the ingredients and stir until smooth, using a whisk if necessary.
Add the diced potatoes, chicken broth, milk, heavy cream, salt, pepper, and ancho chili powder to the pot. Stir until well combined.
Bring the mixture to a boil and cook until the potatoes are fork-tender, approximately 10 minutes.
Lower the heat to a simmer. Carefully transfer about half of the soup (roughly 5 cups) to a blender and puree until smooth. Alternatively, use an immersion blender directly in the pot.
Return the pureed soup to the pot, then stir in the sour cream and reserved bacon pieces.
Simmer the soup for 15 minutes before serving.
Garnish with sour cream, bacon, shredded cheddar cheese, or chives as desired. Enjoy!