Prep & Cook Potatoes: Begin by peeling and chopping the russet potatoes into 1-2 inch pieces. Place them in a large 6-8 quart pot and cover with water, ensuring the water is at least 2 inches above the potatoes. Add a generous pinch of salt. Bring the pot to a boil over high heat, then reduce to a simmer and cook for about 20-25 minutes, or until the potatoes are very tender and easily mashed with a fork.
Prepare the Gravy: While the potatoes are cooking, melt 4 tablespoons of butter in a smaller pot over medium heat. Whisk in ΒΌ cup of all-purpose flour. Continue whisking constantly for 2-3 minutes until the mixture forms a light golden, fluffy roux.
Flavor the Gravy: Stir in the beef base, chicken base, and garlic powder until everything is well combined into the roux. Gradually pour in 2 cups of water, whisking continuously to keep the gravy smooth. Let it simmer gently for 2-3 minutes, allowing it to thicken. Then, remove the pot from the heat; the gravy will continue to thicken slightly as it cools.
Drain & Dry Potatoes: Once the potatoes are tender, carefully pour them into a colander to drain. Let them sit and steam for at least 5 minutes; this helps remove excess moisture, resulting in wonderfully fluffy mashed potatoes.
Mash the Potatoes: Return the hot cooking pot to the stovetop (off heat). Add 8 tablespoons of butter and 1 cup of half & half, letting them warm and melt from the residual heat. Add the dried potatoes back into the pot. Use a potato ricer for extra smooth results, or a potato masher, to mash the potatoes until they are creamy and fluffy. Stir well to incorporate the butter and half & half. Taste and season with salt and pepper as needed.
Serve: Transfer the warm, fluffy mashed potatoes to a serving bowl. Reheat the gravy gently on the stovetop or in the microwave if it has cooled too much, adding a splash of water if needed to loosen it. Pour the warm gravy generously over the mashed potatoes and serve immediately.