Cut potatoes, peeled or unpeeled, into 1 inch squares or smaller. Smaller chunks cook more evenly and will make smoother mash potatoes. Slice onion into small chunks. Boil potatoes, adding in onion half way thru process. Cook until potatoes are very tender and soft. Drain and pour into a mixer bowl on top of butter, cream cheese, sour cream, eggs, milk(warmed), shredded cheese. By adding potatoes on top of ingredients it helps to soften and melt into potatoes. Use mixer to beat into a smooth creamy consistency. Add milk to make thinner. Salt and pepper.
Can be made a couple of days ahead of using. Warm up in crock pot on low. Stirring and careful not to burn or scorch on outside.
Another option for serving is to take mashed potatoes from the refrigerator on day of eating and putting them in a oven safe cook ware. After 30 minutes or so, cover and bake for 45-50 minutes at 350. Uncover and bake additional 5-10 minutes. Drizzle with melted butter and or shredded cheese.