Add 1 tablespoon of oil to a large pot over medium heat.
Add the onion, carrots, and celery and sauté for 8 minutes.
Add the tomatoes, lentils, broth, tomato paste, and salt. Bring to a boil, then reduce heat to medium-low and cook for 30 minutes or until the lentils are tender. Turn off heat.
With an immersion blender, blend the soup halfway. (If using a stand blender, blend half of the hot soup in small batches and return blended soup to the pot.)
Add the chopped spinach and stir. Cover, and turn heat to simmer until ready to serve.
Make the tadka: Add the remaining oil to a medium-sized pan over medium heat.
Add the mustard seeds and cumin seeds to the hot oil and let them cook for 3 minutes until they start to crackle.
Add the curry leaves and fry for another minute until fragrant.
Stir in the minced garlic and grated ginger and cook for an additional 1 to 2 minutes until the garlic turns golden brown and aromatic. Remove tadka from the heat.
Dish the soup into bowls, garnish with yogurt and the tadka (including the oil it was cooked in), and serve.