Prick the potatoes all over with a fork to prevent them from bursting, then bake them at 400°F for about 45-50 minutes until they're completely soft when pierced. While the potatoes bake, cook the bacon in a skillet over medium heat until it's crispy and golden, then transfer it to a paper towel-lined plate to drain. Once cooled enough to handle, crumble the bacon into 1/4-inch pieces and set aside. This parallel cooking saves significant time and ensures everything is ready when you need it.
Once the potatoes have cooled slightly, cut them in half lengthwise and scoop out the insides with a spoon, leaving a thin shell if you plan to serve in the skins (though not required for this soup). Cut the scooped potato flesh into bite-sized chunks and measure out about 2-3 cups' worth—you may not use all of it, which is fine. Thinly slice the green onions, keeping the white and green parts separate for layered flavor. Having everything prepped and measured before you start the sauce base ensures smooth cooking without interruption.
Melt the butter in a large heavy-bottomed pot over medium heat, then add the flour all at once, stirring constantly for about 1 minute to cook out the raw flour taste—this creates the foundation for a smooth, silky soup. Gradually whisk in the milk, a little at a time at first to prevent lumps from forming, then add the rest more steadily, stirring frequently. Cook for 8-10 minutes, stirring occasionally, until the sauce thickens noticeably and reaches a gentle bubble. I find that using a whisk instead of a spoon helps incorporate the milk more smoothly and prevents lumps from forming.
Add the salt, black pepper, white pepper, and garlic powder to the thickened sauce and stir well to distribute the seasonings evenly. Stir in the potato chunks from Step 2, along with about 2 tablespoons of the white parts of the green onions, half of the crumbled bacon from Step 1, and 1 cup of the cheddar cheese. The white parts of the green onions add subtle allium flavor when cooked into the soup, while the greens are reserved as a fresh garnish. Cook for another 2-3 minutes, stirring gently, until the cheese melts and the potatoes are heated through.
Remove the pot from the heat and stir in the sour cream, folding it in gently until it's fully incorporated—adding it off-heat prevents it from breaking or curdling. Taste the soup and add more milk if you prefer a thinner consistency; the soup will continue to thicken slightly as it sits. I prefer my baked potato soup thick enough to coat the back of a spoon but still pourable, so I usually add just a splash of milk, but every preference is different.
Ladle the soup into bowls and top each serving generously with the remaining crumbled bacon from Step 1, the reserved green parts of the green onions (for bright color and fresh flavor), and a sprinkle of the remaining 1/2 cup cheddar cheese. The toppings add textural contrast and visual appeal that makes this soup feel restaurant-quality.