Preheat the oven to 400°F.
Bake the potatoes: Wash and dry the potatoes, then wrap each in aluminum foil. Bake for about 1 hour or until soft. Let cool slightly, then peel the skins off and mash with a fork, leaving some chunks for texture.
Fry the bacon: While the potatoes bake, cook the bacon until crispy. Drain on paper towels and crumble. Set half aside for garnish.
Prep the green onions: Thinly slice the white parts of the green onions, saving the green tops for garnish.
Make the roux: In a large soup pot, melt the butter over medium heat. Gradually whisk in the flour, salt, and pepper, stirring constantly for about 1 minute to cook out the raw flour taste.
Add the milk: Slowly pour in the milk, stirring constantly to avoid lumps. Continue to cook until the mixture thickens and becomes creamy. You can add more milk if you want a thinner soup.
Add potatoes and mix-ins: Stir in the mashed potatoes, half the crumbled bacon, diced green onions, and 1 cup of the shredded cheese. Mix well to combine.
Finish with sour cream: Stir in the sour cream for extra creaminess.
Serve: Ladle the soup into bowls, and top each serving with the reserved bacon, remaining cheese, and green onions. Add salt and pepper to taste.