Preheat the oven to Fan 180˚C/ Gas mark 6 / 400˚F. First cut the aubergines into ½ inch slices. You can either bake in the oven, brushed with oil, for 50 minutes approximately, turning over halfway, or you can fry in a frying pan and brown on each side. This will take less time, but it will use up more oil.
In a large saucepan, soften the onion in some olive oil over medium-high heat, then add the minced lamb and cook, breaking it up, until browned. This will take approximately 5 minutes. Stir in the garlic, crushed coriander seeds, oregano, tinned tomatoes, stock and cinnamon sticks, cover with a lid, lower the heat to maintain a simmer and cook for about 40 minutes, stirring occasionally. Uncover, stir in the tomato puree, season to taste with salt and pepper, and cook until it starts to thicken without burning the bottom of the pan, approximately 30 minutes. Set to one side to cool.
Meanwhile, boil the potatoes until just cooked but still slightly firm. Drain and let cool.
To make the béchamel sauce, melt the butter in a saucepan, then whisk in the flour until smooth. Slowly whisk in the milk and bring to a gentle boil, whisking constantly and making sure not to burn the bottom of the pan, then simmer gently for 5 minutes before whisking in the parmesan, nutmeg and salt and pepper to taste. Leave to cool for 30 minutes, then whisk in the yolk.
To assemble, oil a large baking dish then arrange a layer of sliced potato on the bottom, then add a thin layer of the meat mixture to fill in the crevices. Arrange a layer of cooked eggplant slices on top, making sure there are no gaps. Add another layer of the meat mixture to cover, then a final layer of eggplant before pressing down well. Cover with the white sauce.
Place into the preheated oven for 45 minutes to one hour, until golden brown. Serve with a tomato and onion salad.