Start off by peeling the onion, swede and carrots, chop them into chunks and place them into the bowl of a food processor. Then add the cinnamon, herbs and flour and whiz everything together until it's all finely chopped (be careful, though, you don't want to end up with a purée). Now place the lot in the casserole, add the lamb and give it all a good seasoning.
Next, mix the tomato purée and stock together in a jug, stir this into the casserole and give it all a good mix. Place the casserole over a gentle heat and bring it up to simmering point. Cover with the lid and place it in the pre-heated oven on the centre shelf to cook for 2 hours.
At this point, remove the casserole from the oven and increase the temperature to gas mark 6, 400°F (200°C). Tip the meat into a sieve placed over a bowl and leave it for 5 minutes to drain away the excess fat.
Meanwhile, cook the mash in the microwave at 850W for 10 minutes. Then transfer the meat to the serving dish, mix the milk into the mash and cover the meat evenly with the mashed potato.
Now slice the leeks lengthways into four and chop each length into ¼ inch (5 mm) slices. Rinse and dry them, then cover the potato with the chopped leeks, pressing them gently into the surface.
Finally, cover the leeks with grated Cheddar and then sprinkle with the Parmesan. Return the dish to the oven on a high shelf for 25 minutes or until the top is golden and crusty.
Note: If you are using a gas oven that was made after 1992, you will need to cook this at gas mark 2