Peel and finely chop or grate the garlic. Halve the chilli, flicking out the pith and seeds for less heat, and finely chop it. Separate the coriander leaves and stalks, and finely chop the stalks (save the leaves for later). Peel the onions and slice them.
Pour 2 tbsp oil into a large pan and bring to a medium heat. Slide in the onions, garlic, chilli and coriander stalks. Sprinkle in 1 tbsp each garam masala, turmeric and ground cumin, and add a pinch of salt and pepper. Fry for 5 mins, stirring occasionally, till the onions have softened.
While the spiced onions cook, peel and chop the sweet potatoes into bite-size chunks. Roughly chop the tomatoes. Drain the chickpeas and rinse well with cold water.
When the onions have cooked, tip in the sweet potatoes, tomatoes and chickpeas. Crumble in the coconut cream and pour in 750ml boiling water. Bring to the boil, then pop a lid on the pan and reduce to a simmer. Cook for 30 mins, stirring a few times.
Cut any thick stalks off the spinach. When the curry has simmered for 30 mins, stir in the spinach leaves and cook for another 2 mins, till the spinach has wilted. Have a taste and add more salt and pepper if needed.
Ladle the curry into deep bowls and finish with a scattering of the remaining coriander leaves.