Place cubed potatoes into a large pot and cover with water. Water level should be at least an inch above potatoes to allow for proper boiling. Salt water if desired. Bring to a boil.
Boil until potatoes easily break apart when pierced with a fork. As potatoes are often cut at different sizes, this can take anywhere from 10-30 minutes. After ten minutes start testing by gently stabbing a potato with a fork (this can be done in the water). If it breaks up with no real pressure, then the potatoes are done. Drain.
Return drained potatos to empty pot and add in butter, cream cheese, 1/2 cup of half and half, sour cream, salt and pepper. Mash with a potato masher. An electric mixer can be used, but don't over-do it or you'll wind up with gummy mashed potatoes.
Transfer mixture to slow cooker and place on warm until ready to serve. If mixture will be kept in slow cooker for more than an hour, give a stir and add a splash of half and half or milk every hour or so to prevent drying. Top with additional butter just before serving if desired.