Preheat oven to 375 degrees (350 for glass), spray casserole dish with Pam.
To prepare the cheese sauce, melt butter in a medium saucepan over medium heat.
Whisk in flour, garlic powder, salt and pepper.
Mix in milk and stir constantly until thickened.
Mix in the cheddar cheese and Swiss cheese and continue to stir until smooth. Reduce heat to low.
Layer potatoes in the bottom of the casserole dish, Layer onion and ham over potatoes. Top with cauliflower. Cover with the cheese sauce.
Bake covered 1 hour in the preheated oven. Remove cover, sprinkle with crushed cornflakes, and continue baking 10 minutes, until vegetables are tender and surface is bubbly and lightly browned. Allow to cool about 10 minutes before serving.