Put the potatoes in a large pot and cover with cold water by an inch. Add a tablespoon of salt and bring to a boil.
Reduce the heat and simmer for 15–20 minutes, until the potatoes are very tender when pierced with a fork.
If using the onion, cook it in the butter in a small skillet over medium heat for 5 minutes, until soft. Otherwise, simply melt the butter.
Drain the potatoes well and return them to the hot pot for 1 minute to steam dry.
Mash the potatoes with the butter (and onion) and the warm milk until smooth, adding more milk a splash at a time for the texture you like.
Season with the salt and pepper and serve warm.