Heat a large dutch oven or heavy bottom stock pot over medium-high heat. Add diced bacon and cook until crispy, stir occasionally but check often to avoid it burning. Using a slotted spoon, transfer the bacon to a separate plate. Reserve 3 tablespoons of bacon grease in the pot. If preferred discard all bacon grease and substitute butter in place of the reserved bacon grease.
Add onion and sauté for 5 minutes until onion is soft and translucent, stirring occasionally.
Stir in the garlic and sauté until the garlic is fragrant, about 1-2 minutes.
Sprinkle the flour over the onion and garlic and stir until smooth. Sauté for 1 minute to cook the flour.
Stir in the stock until combined, followed by the milk, potatoes, salt, pepper, and chipotle powder.
Bring the mixture to a boil until the potatoes are soft, about 10 minutes. Stir the soup often to avoid the bottom burning.
Reduce heat to simmer and use the immersion blender to puree the soup.
Add sour cream and bacon pieces, stir well.
Allow soup to simmer for 15 minutes before serving.