Heat the oil in a large saucepan over medium heat. Add the onion and cook for about 10 minutes, until the onion becomes soft and starts to turn golden brown. Stir in the cumin, coriander and turmeric and cook, stirring constantly, for about 1-2 minutes. Once they release their gorgeous aroma, add the chili, ginger paste, garlic, and tomatoes. Cook for 5 minutes, and stir the mixture occasionally.
Add the potatoes and sweet potatoes along with 2 cups of water, season with a generous pinch of salt and pepper, and bring mixture to a boil. As soon as it starts to boil, turn the heat down, cover and simmer for 15 minutes. Add the coconut milk and chickpeas and continue cooking for 20 minutes, stirring often. Continue to cook until you can easily pierce the potatoes and sweet potatoes with a fork and the sauce has thickened.
Stir in the spinach and continue to simmer until the spinach wilts. This should take about 5 minutes. Add the lime juice and taste to see if you want to add another pinch of salt or pepper.
To serve, spoon rice or couscous into shallow bowls, ladle a heaping scoop of the curry over it and sprinkle with fresh cilantro.