Wash and dry the cauliflower heads. Cut into bite-sized florets and place onto a large baking sheet. Drizzle with olive oil, salt and pepper and roast 25 minutes.
Remove cauliflower from the oven and press paper towels on top of it to remove any excess moisture. Transfer cauliflower in a 9x13 baking dish on top of a metal baking sheet (to catch any drips).
In a large pot over medium heat, melt butter. Whisk in the flour and cook, whisking constantly, until mixture starts to bubble. Season with salt and pepper. Pour in the milk and cream and bring to a boil over high heat, whisking occasionally. Lower the heat and simmer, whisking occasionally, until mixture thickens and coats the back of a wooden spoon. Remove from heat and add goat cheese, fontina cheese and 1/2 cup of the parmesan cheese. Mix together until cheese is melted. Pour cheese mixture over the cauliflower. Sprinkle remaining 1/2 cup of parmesan cheese over top.
Bake for 55-60 minutes or until top is bubbly and golden brown. Let rest for 20-30 minutes before serving.