Heat olive oil in a large pot over medium heat. Add the diced onion and sauté for 5 minutes until it starts to soften and turn golden.
Add the garlic and grated ginger, cooking for another minute until wonderfully fragrant. Your kitchen will smell amazing!
Stir in all the spices (cumin, coriander, paprika, cinnamon, and cayenne if using). Toast them in the oil for about 30 seconds to wake up all those flavors.
Add the chickpeas, diced tomatoes with their juice, and vegetable broth. Bring everything to a boil, then reduce heat and let it simmer for 20 minutes to let the flavors marry.
For a creamier texture, use a potato masher or the back of a spoon to lightly mash about half the chickpeas against the side of the pot. This thickens the soup naturally.
Stir in the chopped spinach and let it wilt for 2-3 minutes. Add the lemon juice and season with salt and pepper to taste. Serve hot, garnished with fresh cilantro and a drizzle of olive oil if you're feeling fancy!