Preheat oven to 375 degrees.
Wash and slice potatoes to 1/8" thick. Using a mandolin slicer is highly recommended.
Place potato slices in liberally salted boiling water for four minutes.
Remove potatoes and place on clean kitchen towels to dry out.
Melt butter in a large pot over set just under medium heat.
Add the diced onion and cook until caramelized, about 12 minutes.
Whisk in the flour and allow to cook for 2 minutes.
Add whole milk, half & half, salt and pepper to the pot. Turn the heat to high and whisk constantly until it thickens up.
Turn heat down to low and allow to simmer for 10 minutes. Whisk often. Don't let the sauce stick to the bottom of the pot.
Add cubed Velveeta and shredded extra sharp cheddar cheese to the pot and whisk until melted and smooth.
Begin layering potato slices in a buttered casserole dish. You'll need at least 3-quart dish. Only overlap the potatoes slightly.
Pour some of cheese sauce over the potatoes and spread out evenly.
Continue layers of potato slices followed by cheese sauce until you're out of both.
Top with 8 oz of any shredded cheese you like.
Bake covered for 30 minutes.
Remove the lid, turn heat up to 425 degrees and bake for an additional 20 minutes until the top is golden brown and bubbly.
Rest for 15 minutes before serving.