In a Dutch oven, cook the bacon over medium heat until crispy. Remove bacon from pan, and set aside on a paper towel-lined plate to drain.
To the same Dutch oven, add the onion to the reserved bacon drippings. Cook until onion is translucent, about 5 minutes.
Add in garlic and continue cooking for 1 to 2 minutes.
Add potatoes and chicken bouillon cube. Toss potatoes to coat. Saute for 3-4 minutes.
Add enough chicken stock to just cover the potatoes.
Cover and simmer until potatoes are tender, about 20 minutes.
In a separate skillet, melt the butter over medium heat. Once melted, whisk in the flour. Cook, whisking constantly until lightly browned, about 1-2 minutes.
Add in the sour cream and 1 tablespoon chopped cilantro and stir until heated through.
Add the sour cream mixture to the potato mixture, and stir to combine. Place half of the soup into a separate large bowl. Using an immersion blender, puree about ½ the soup, and then return to the Dutch oven. (You can also use a blender, just be careful!)
Stir in salt, pepper, chili powder if using, and half of the cooked and crumbled bacon.
Garnish with remaining crumbled bacon, cheese, and cilantro.
Notes
*If you do not want to use cilantro you can use scallion or parsley.