Cut the potatoes into equal sized pieces and place in a large stockpot. Add just enough water to cover the potatoes about 1 inch. Bring to a boil for about 10 minutes or just until they are fork tender. Be careful not to overcook the potatoes or they will become mushy.
Meanwhile, add the half and half, butter and garlic to a small stockpot over medium-low heat. Cook until the butter melts and the mixture has warmed through, stirring occasionally. Set aside.
Drain the water from the potatoes and place the stockpot back over a low heat to let all the steam and moisture evaporate.
Remove from the heat and add the cream cheese in with the potatoes. Mash the potatoes with a potato masher.
Pour in half of the half and half mixture into the potatoes and mash or blend with a mixer. Mix in the remaining wet mixture until you reach the desired consistency. Season with salt and pepper to taste and top with green onions.