Cook the macaroni in a large saucepan of boiling salted water for 8-10 minutes; drain well and set aside.
Melt the butter over a medium heat in a saucepan slightly larger than that used for the macaroni. Add the flour and stir to form a roux, cooking for a few minutes.
Gradually whisk in the milk, a little at a time. Cook for 10-15 minutes to a thickened and smooth sauce.
Meanwhile, preheat the grill to hot.
Remove the sauce from the hob, add 175g/6oz of the cheese and stir until the cheese is well combined and melted.
Add the macaroni to the sauce and mix well. Transfer to a deep suitably-sized ovenproof dish.
Sprinkle over the remaining cheddar and the parmesan and place the dish under the hot grill. Cook until the cheese is browned and bubbling. Serve straightaway.