Preheat the oven to 375F/190C.
Slice the eggplant/aubergine in around ½in/1cm slices and lay out flat. Sprinkle with a little salt and leave a couple minutes (don't be tempted to skip - it does help draw out any bitterness and apparently stop them absorbing as much oil).
Heat a little olive oil in a skillet/frying pan over a medium-high heat. Dry the slices of eggplant/aubergine and brush off the salt. Fry the eggplant/aubergine slices in batches until gently browned on each side. Don't be tempted to use too much oil - just enough to stop them sticking. When cooked, put to one side. If they are oily, dry on paper towel (you can also put oilier ones on top off other slices you are cooking and some will drain out to help those ones not stick when you turn over).
Heat the tbsp oil in another pan over a medium heat. Dice the onion and add to he pan. Dice the garlic small and add as well.
Cook the onions and garlic for around 5 minutes until soft but not browning then add the lamb.
Brown the lamb - you may need to turn up the heat a bit - until it is all cooked then add the tomatoes, herbs and some salt and pepper. Stir well and set aside.
In another pan, melt the butter over a medium heat. Add the flour and stir well, cooking until it starts to become slightly nutty, a minute or two.
Turn the heat down a little and add the milk gradually, stirring in well as you go, around ½ cup at a time, pressing any lumps to the side of the pan to remove. Don't worry if still a couple.
Add the majority of the cheese (keep back a couple handfuls) and mix through so it melts. Remove from the heat, add the egg and whisk it through.
Start layering up your dish in a large oven dish - put half the meat mixture on the bottom, followed by half the eggplant/aubergine slices covering, overlapping slightly, then some sauce. Use roughly half the sauce but a little less as you want more on top if anything.
Then gently spread out the rest of the lamb on top, followed by the remaining eggplant/aubergine in a layer and finally the last of the sauce. Sprinkle the cheese you kept back over the top.
Bake for approx 40mins until golden brown on the top.