Heat the olive oil in a large pot over medium heat. Add the diced onion and cook for 4 to 5 minutes until it softens.
Stir in the minced garlic, grated ginger, and cumin seeds. Cook for 1 minute until the spices smell fragrant.
Add the turmeric, garam masala, and chopped tomatoes. Cook for 3 minutes, stirring often, until the tomatoes begin to break down.
Pour in the vegetable broth and add the drained kidney beans. Bring the mixture to a simmer and cook for 10 minutes.
Stir in the chopped spinach and cook for 2 minutes until it wilts. Taste and add salt as needed.
Remove the pot from the heat. Serve the soup hot with a sprinkle of fresh cilantro on top.