Preheat your oven to 200 degrees.
Heat a large pan with some olive oil and add the onions, carrots, garlic. Sauté until just beginning to brown, before stirring in the herbs and cinnamon.
Add the lamb and allow to brown for 3-4 minutes.
Stir in the chopped tomatoes, purée and stock. Bring the mixture to the boil before reducing to a simmer for 30-40 minutes while you make everything else.
Heat a pan with some olive oil, and brown the potatoes in batches for 1-2 minutes aside.
Line an oven-proof dish with half of the potatoes, pour in the mince mixture, and then top with the remaining half of the potatoes.
For the topping, melt the butter in a pot, add the flour, and cook over a medium heat for one minute to cook out the flour. Gradually whisk in the milk; bring it to the boil. Remove from the heat and stir in the cheese. Allow to cool slightly, and then beat in the egg.
Pour over the topping, and bake for 30-40 minutes until the top is golden-brown and the potatoes are fully cooked.