Add peeled potatoes to a large pot of boiling water to precook all potatoes (about 45 minutes).
Drain potatoes from the pot of water and let cool completely before slicing. (Hint: Sometimes I'll do this in the morning or even the day before and keep them in the refrigerator to cool completely before slicing.)
Butter a large 9"x13" glass dish.
Slice potatoes into 1/4" pieces and add to glass dish.
Top with sliced butter cut into 8 slices.
Add sautéed onions on top of sliced potatoes and butter.
Salt and pepper to taste.
In a separate sauce pan, make the sauce by combining the cream of chicken and milk on a low heat setting. Whisk until completely smooth. Be sure not to scorch.
Pour warm sauce over the potatoes.
Add in about 2 cups of the shredded cheese.
Add in bacon or ham at this point.
Stir well to get everything evenly coated.
Top with more cheese to form a crust.
Add in paprika and more salt and pepper to taste. (Hint: Make sure to taste test at this point and adjust salt and pepper accordingly)
Cover with foil on a foil lined cookie sheet and cook in the oven at 350 degrees for 30-35 minutes.
Serve hot. Garnish with fresh or dried chives before serving.