Scrub the potatoes clean. If you’re a leave-the-peel-on kind of person, do that; if you prefer things utterly smooth, peel the potatoes.
Trim and roughly chop the leek or onion.
In a medium pot over medium-high heat, melt the butter. Add the leek and salt and cook, stirring frequently, until softened, about 3 minutes. While the leek or onion cooks, roughly chop the potatoes.
Add the potatoes and broth to the pot. Bring to a boil. Reduce the heat to maintain a steady simmer and cook until the potatoes are utterly tender, about 10 minutes. Do this uncovered, since you want a fair amount of the liquid to evaporate.
If you peeled the potatoes, go ahead and use an immersion blender to puree the soup; or put the soup in a blender and whirl until smooth (you may need to do this in batches and be sure to hold a kitchen towel over the top of the blender to prevent any splatters from the hot liquid). If you chose to leave the peels on, mash up the potato using a masher or large fork as best you can.
Add the milk and bring to a simmer. Taste. Add salt and pepper as you like.
While the soup cooks, cook the bacon, slice the green onions, grate the cheese, and prepare any other toppings that appeal to you.
Serve the soup hot with the various garnishes for people to add as they like.