Heat olive oil in a large pot or Dutch oven over medium heat. Add onion and cook until softened, about 5 minutes. Add garlic, cumin, turmeric, cinnamon, and cayenne pepper (if using) and cook for 1 minute more, until fragrant.
Stir in diced tomatoes (undrained), chickpeas, kidney beans, cannellini beans, and vegetable broth. Bring to a boil, then reduce heat and simmer for 30-40 minutes, or until the stew has thickened slightly and the flavors have melded.
Season with salt and pepper to taste. Garnish with fresh cilantro before serving.
Notes
Serve with couscous or crusty bread for a complete meal. For a spicier stew, add more cayenne pepper or a pinch of chili flakes.