Grease a 9x13-inch casserole dish or 3-quart baking dish generously with butter. Preheat oven to 350℉ (175℃) if baking immediately.
Place potatoes into a large stock pan. Cover with cold water and add 2 teaspoons kosher salt. Bring the potatoes to a rapid boil, then reduce the heat to medium. Simmer until the potatoes are fork-tender (the chunks should fall apart easily when pieced with a fork.) Drain the potatoes and return to the hot pan. Place over low heat and simmer until all the moisture has evaporated–about 1-2 minutes.
In a large bowl, mash the hot potatoes by hand with a potato masher. Once mashed.
Add 8 ounces full-fat cream cheese, ¼ cup unsalted butter, ½ cup full-fat sour cream, ½ cup milk, ½ cup finely chopped yellow onion, 1 teaspoon kosher salt, and a pinch of pepper to the mashed potatoes and mix on low speed using a handheld mixer until combined and fluffy. Whisk 2 large eggs in a small bowl, then add to potato mixture and mix quickly to combine.
Transfer the potato mixture to the prepared casserole dish, spreading it out into an even layer. If not baking immediately, cover tightly and refrigerate up to 48 hours.
If baking immediately, bake at 350℉ (175℃) for 20-25 minutes, or until warmed through and slightly browned. If baking after refrigeration, let the casserole sit at room temperature for 30 minutes while the oven preheats, uncover, and bake at 350℉ (175℃) for 45-50 minutes.
Video
Notes
Egg-Free Option: Simply omit the eggs. Onions: Feel free to omit the raw onions or replace with 2 teaspoons onion powder.Add Cheese: Stir 1 cup shredded cheddar into the potato mixture and then top the casserole with an additional 1 cup of cheese before baking.Add Bacon: Before baking, top the potatoes up to ½ cup crumbled cooked bacon. Freezing the Casserole: Mix in an extra ½ cup milk, assemble in a freezer and oven safe baking dish (like a disposable foil baking dish), cover tightly with 2 layers of foil and freeze for up to 1 month. Thaw overnight in the fridge, let sit at room temperature for 30-60 minutes, then bake at 350℉ (175℃) for 45-50 minutes.Leftovers: Store leftovers in an airtight container in the refrigerator for up to 4 days. Reheat individual servings in the microwave, covered with a damp paper towel so the casserole does not dry out.