Cook the potatoes in a pan of slightly salted boiling water until tender. Drain. Meanwhile, heat the oil in a heavy nonstick frying pan and stir in the onions and lamb. Cook over a medium heat, stirring frequently, for 5 minutes or until the onions are softened and the lamb is lightly browned.
Stir in the brinjals, then cook over a fairly high heat for 3 minutes.
Add the cinnamon and season, then add the chopped tomatoes, stock and herbs. Stir well, then cover and simmer for 15 minutes or until cooked through and tender. Meanwhile, preheat the oven to 200°C.
While the meat mixture is cooking, put the cornflour in a small pan and add 2 tbsp milk. Stir until blended using a wooden spoon, then stir in the remaining milk. Bring to the boil over a medium heat, stirring until thickened. Cook, stirring, for 3 minutes. Remove from the heat and stir to cool a little. Beat in the egg and season with mustard, if using, and salt and pepper.
Spoon the meat and brinjal mixture into a warm, shallow ovenproof dish and spread evenly. Lay the potato halves over the top, flat side up. Pour over the topping and sprinkle with grated cheese. Bake near the top of the oven for 20 minutes or until golden.
Spicy South African ‘bobotie’- omit the potatoes. Soak a thick slice of white bread in 200ml semi-skimmed milk, then squeeze it out well (reserve the milk). At step 2 omit the brinjals, and tear the bread into the browned meat mixture. Stir in 1 tbsp medium curry powder, or to taste, 3 tbsp mango or apricot chutney and 1 tbsp raisins. Season and add a little lemon juice if you like, then turn the mixture into a greased baking dish. Omit the egg and cheese topping. Mix the reserved milk with 1 beaten egg and spoon over the meat. Bake at 180°C for 30 minutes or until golden.