Heat the oil in a large pan over medium heat and add the onion. Fry until soft and transparent then add the ginger and garlic. Fry for another 30 seconds more until tender.
Add the curry powder, cumin and chili powder. Stir continuously for 30 seconds to bring out the flavors.
Add the diced sweet potato, chickpeas, can of diced tomatoes, vegetable stock and salt.
Bring to a simmer then cover and reduce the heat to maintain a gentle simmer. Cook until the sweet potatoes are soft and tender - about 15 to 20 minutes.
Check on it from time to time and give it a stir. If the pan seems dry, add another splash of vegetable stock or water. If you think the curry is too watery, remove the lid and allow some liquid to simmer off.
Add the spinach and garam masala and cook for another minute or so until the spinach is wilted.
Serve with rice and optionally chopped cilantro.