Water with a few pinches of salt added (for boiling potatoes)
3 tablespoons butter
1 medium onion, diced
6 cups whole milk (or milk of choice)
1 ½ teaspoons salt (use more or less to taste)
Ground black pepper to taste
Add potatoes to a pot and add enough water to cover by about 1 inch. Stir in a few pinches of salt and bring to a boil. Boil gently until potatoes are fork-tender, but not falling apart, about 10-15 minutes; drain and set them aside, reserving a cup or so of the cooking water.
While the potatoes are boiling, heat butter over medium heat in a Dutch oven or soup pot. Add onions to the butter and cook until soft and golden brown around the edges.
Add drained potatoes to the pot with cooked onions. Add milk, salt, and pepper. Gently bring to a simmer. Don’t allow the milk to boil – you want it to have small bubbles around the edge of the pot.
Simmer gently for 10 minutes. Remove from the heat, and use a potato masher or immersion blender to mash up about half of the potatoes while leaving the rest chunky. If the soup needs to be made thinner, add a little bit of the reserved cooking liquid until you get the desired consistency.
Taste and adjust salt and pepper. Serve while hot.