Heat the olive oil in a large pot or Dutch oven over medium heat. Add the diced onion and cook for 4 to 5 minutes, stirring occasionally, until softened.
Add the garlic, ginger, curry powder, cumin and paprika. Cook for about 1 minute, stirring continuously, until the spices become fragrant.
Add the sweet potato cubes and stir well to coat them evenly with the spices.
Pour in the diced tomatoes, coconut milk and vegetable broth. Add the chickpeas and stir everything together.
Bring the curry to a gentle boil. Reduce the heat, partially cover the pot and simmer for 20 to 25 minutes, stirring occasionally. The sweet potato should be tender while still holding its shape.
Add the baby spinach and cook for another 2 to 3 minutes, until wilted.
Stir in the lemon or lime juice. Taste and season with salt and black pepper as needed.
If the curry is too thick, add a small splash of vegetable broth. If it is too thin, let it simmer uncovered for a few more minutes.
Serve warm over basmati rice, topped with fresh cilantro and accompanied by lemon or lime wedges, if desired.