Pre-heat your oven to 400f (200c)
Cut the cauliflower into florets, don't cut them too small, you want quite big florets so they don't get too soft. Arrange on a baking sheet and toss with the olive oil and a sprinkle of salt and pepper.
Roast in the oven for 20 minutes. It should have a touch of colour but still be firm. When done remove from the oven and turn oven down to 350f.
While roasting prepare the bacon and leek. Heat the butter over a medium-high heat and fry the bacon until crisp and golden, about 10 minutes. Turn the heat down if you need.
Remove with a slotted spoon and set aside.
Toss the leeks in the bacon fat and then cook, stirring often for five minutes. Lower the heat to low and continue cooking for a further 5 - 6 minutes until really soft. Don't let them catch or burn, keep an eye on them.
Set aside with the bacon and make the cheese sauce.
In a large saucepan heat the butter over a medium heat and when sizzling, add the flour.
Whisk vigorously for a minute.
Lower the heat slightly and add the milk in a slow stream, whisking the whole time making sure you get all the flour mixture from the bottom and sides of the pan.
Cook for 3 - 4 minutes until it thickens slightly and coats the back of a wooden spoon.
When ready it should almost be at a slight simmer but not quite.
Turn the heat right down to lowest and add the cheese in three lots, whisking well and letting it melt in between each addition. It doesn't matter if there is the odd lump.
Add the black pepper, lemon zest and rosemary and stir in well.
Take off the heat and mix in the roasted cauliflower, bacon and leeks.
Have a taste and add ½ - 1 teaspoon salt if you need.
Pour into a baking dish (I used a 30cm x 12cm dish). Sprinkle the grated parmesan on top and bake for 25 - 30 mins until bubbling and golden brown.
Let it sit for 10 minutes before serving.