Heat coconut oil in a large pot or Dutch oven over medium heat. Add the onion and cook for 5 minutes until softened and translucent.
Add garlic and ginger and cook for 1 minute. Add curry powder, cumin, coriander, and cayenne pepper, and toast the spices for 30 seconds, stirring constantly until fragrant.
Add the sweet potato cubes and stir to coat with the spice mixture. Cook for 2 minutes.
Add coconut milk, diced tomatoes with their juices, peanut butter, and vegetable broth. Stir well to combine and dissolve the peanut butter completely.
Bring the mixture to a boil, then reduce heat to medium-low and simmer uncovered for 15-18 minutes, stirring occasionally, until sweet potatoes are tender when pierced with a fork.
Stir in the chickpeas and spinach and cook for 2-3 minutes until spinach is wilted and chickpeas are heated through. Taste and adjust salt as needed.
Serve hot over cooked rice and garnish with fresh cilantro.