Spray a 10x15” glass baking dish with olive oil cooking spray.
Peel sweet potatoes, slice down and then cut each slice in thin strips.
Layer into prepared casserole dish.
Peel white potatoes. Cut in ¼ to 1/3” disks and then cut down in larger pieces.
Toss on top of sweet potatoes.
Sprinkle diced onion over top of potatoes.
Add sliced leeks and then garlic.
Slice ham down into strips and layer on top of everything else.
To make sauce: place butter in medium to large saucepan and place over low to medium heat.
Whisk in flour. It will be dry and lumpy.
Add half-and-half about a quarter cup at a time and whisk into mixture.
Continue adding half-and-half up to three cups while working out the lumps from the flour. (Add an additional cup of half-and-half or milk if you don't want an incredibly thick sauce).
Add cheese, marjoram, thyme, parsley, salt and pepper.
Stir and continue cooking until sauce thickens.
Allow to thicken again.
Pour sauce over top of ham and potatoes.
Cover with foil. Bake at 350° for about an hour.
Remove foil. Check to be sure potatoes are fork tender.
Stir all ingredients and place back in oven another 5 or 10 minutes to lightly brown top of casserole.