In a large pan over a medium heat, fry the onion in the olive or coconut oil, stirring frequently until tender (about 4-5 minutes).
Add the chilli and ginger and fry for another minute or so.
Add the cumin, coriander, turmeric and paprika. Stir them through the onion mixture and allow them to cook for about another minute before adding anything else. This will toast the spices, releasing their flavours.
Add the crushed garlic and red pepper. Cook for another few minutes, stirring frequently.
Add the sweet potato and cauliflower. Mix through well before pouring in the tinned tomatoes, coconut milk, lime juice and vegetable stock.
Give everything a good stir before turning the heat down to a simmer, covering the pan with a lid and leaving to cook for 20 minutes.
If serving with rice, start cooking this now so it will be ready at the same time as the curry.
After 20 minutes, drain the chickpeas, add to the pan and stir. Place a generous handful of spinach on top and cover with the lid once again. Leave the chickpeas to heat through and the spinach to wilt for 5 minutes.
Remove the lid, give everything another good stir and season with salt and pepper to taste.
Serve with the rice and extra fresh coriander and lime if desired.