Note: to prep these ahead of time, wash, peel and chop your potatoes. Place them in a large bowl and cover them with cold ice water. Store them in the fridge for 12 to 18 hours before preparing.
Slice the potatoes in half or in quarters, depending on the size. You want the potato chunks to all roughly be the same size and not too small.
Place the potatoes in a large pot of cold water over medium heat. Season the water with a big pinch of salt. Bring the potatoes to a boil, then boil until they are fork tender, about 12 to 15 minutes. (If your potato chunks are smaller, check after 10 minutes.)
While the potatoes are boiling, heat the butter and cream in a saucepan over medium-low heat until the mixture is warmed through.
Drain the potatoes well and place them back in the pot. Use a potato masher or ricer to begin mashing the potatoes into the consistency you enjoy. Mash in half of the butter and cream mixture and 1 teaspoon salt. At this point, if you want to use a hand mixer, now is the time. You don’t want to over mix! Keep it on low speed and move it around the bowl constantly, just for a minute or two, breaking up any larger chunks that didn’t mash. Stir in the rest of the milk and butter mixture. Stir in the gruyere cheese. Mix slowly, allowing the cheese to melt. Stir in half of the caramelized onions. Taste and season the potatoes with more salt if needed. Taste frequently so you can get an idea of how much salt to add!
Serve the potatoes with the rest of the caramelized onions on top.
To serve 4: Cut this recipe in half exactly. Taste and season with more salt if necessary.
To serve 12 to 16: Double this recipe exactly, but taste after 2 teaspoons of salt have been added. Continue to mash and taste and season until your desired flavor is reached.