Choose and prep potatoes: Peel if you prefer a very smooth mash (leave skins on for texture and flavor). Cut potatoes into even 1–2-inch chunks so they cook uniformly.
Salt the cooking water generously: Place potatoes in a large pot and cover with cold water by about an inch. Add 1 teaspoon of fine sea salt. Bring to a boil, then reduce to a simmer.
Cook until tender: Simmer the potatoes for 12–18 minutes, depending on size, until a fork slides through easily. Overcooking can make them waterlogged; undercooking leaves lumps.
Warm the dairy: While potatoes cook, gently heat the milk (and garlic if using) with the butter until butter melts and the milk is warm — not boiling. Warming prevents cooling the potatoes and keeps the mash fluffy.
Drain and dry the potatoes: Drain potatoes well and return them to the hot pot. Let them sit on low heat for a minute to evaporate residual moisture; this helps keep the mash light rather than gummy.
Mash carefully: Use a potato ricer, food mill, or a sturdy masher for the fluffiest texture. Gradually add warm milk and butter mixture, then stir in sour cream if using. Taste and season with salt and pepper.
Make-ahead method: Transfer mashed potatoes to an ovenproof dish, smooth the top, dot with a little extra butter, and cover tightly with foil or plastic wrap. Cool slightly, then refrigerate for up to 48 hours.
Reheating for serving: Preheat oven to 350°F (175°C). Remove plastic if used, cover with foil, and bake for 20–30 minutes until heated through. Remove foil for the last 5 minutes to refresh the top. Stir gently before serving; add a splash of warmed milk if needed.
Stovetop reheating option: For smaller batches, reheat gently in a saucepan over low heat with a little milk and butter, stirring until smooth and hot.
Finish and garnish: Taste and adjust seasoning. Sprinkle with chopped chives or parsley and an extra pat of butter if desired. Serve immediately while warm and fluffy.