Preheat the oven to 200°C.
Peel and finely chop the onion, garlic and ginger.
Peel & deseed the squash , measure out 700g and chop into bite-sized pieces.
In a heavy-based pan heat the oil. Gently fry the onions until soft, then add the ginger, garlic and spices. Stir for 1 minute.
Add the squash and lentils, stir, then pour in the tomato and enough water just to cover the stew.
Bring to the boil, and at a low temperature cook, for about 30 minutes until the squash is tender and the sauce is thick.
Meanwhile peel & dice the potatoes, then cook in water until soft. This will take about 15-20 minutes. For the last eight minutes add the cauliflower, torn into rosettes.
When the potatoes and cauliflower are soft, drain and then mash with a potato masher - but it should remain a bit coarse. Add the yoghurt & the grated cheese and season with salt and pepper. Transfer the squash and lentil mixture into a baking dish, then spread the mash evenly on the top.
Bake in the oven for 15-20 minutes until you get a crispy crust.
Serve warm.