Arrange the cauliflower in a single layer on a baking sheet, and drizzle with olive oil. Season with salt and pepper and toss until coated. Roast for 20 minutes, just until golden brown. Transfer to a 9 x 13 baking dish.
In a medium sauce pot over medium heat, melt the butter. Whisk in the flour and cook the paste, stirring constantly, for 1 minute. Whisk in the milk and bring to a boil, stirring often, cooking until sauce has thickened. Add the cheeses and whisk until combined. Season with salt and lots of pepper.
Pour the sauce over the cauliflower and toss to coat. Bake for 30-35 minutes, until golden brown and bubbling. Rest for 15 minutes and then serve, garnished with parsley.