Preheat oven to 375. Place bacon on a lined baking sheet and cook for 15 minutes or until crisp and most fat is rendered. Pour off the fat and reserve. Crumble bacon and set aside.
Pierce potatoes with a fork and microwave on high until they are soft and baked through, about 8-10 minutes depending on your microwave. Set aside to cool, then peel and chop. I sometimes leave half with peel, half without for more texture.
In a large, heavy-bottomed pan over medium heat, melt butter and stir in 2 tablespoons of reserved bacon fat. Saute onions and garlic in the butter until softened, about 6-7 minutes.
Sprinkle flour over onions and stir into a paste (roux). Cook for 2-3 minutes to remove raw flour taste, then whisk in chicken stock slowly, then milk, stirring constantly to avoid lumps.
When thick and bubbling, add salt and peppers, and then the cream cheese. Using a potato masher, mash cheese to melt and remove lumps.
Add potatoes and use masher to create your desired texture. We like a thick soup with plenty of lumps of potato left. Reduce heat to low and simmer for 15 minutes to incorporate flavors. Add more seasoning salt and pepper to taste.
Serve topped with reserved bacon bits, cheese, sour cream and chopped green onions. Enjoy!