Rinse and drain the lentils. Heat a large pot over medium heat, add the lentils and 3 cups of water and bring to a boil. Lower heat to medium-low and simmer until the lentils are just tender, about 15 to 20 minutes. Drain any excess liquid and set the lentils aside in a large bowl.
Return the pot to medium heat, add the olive oil and heat through. Add the butter and allow to melt, then add the onion and sauté until tender, about 6 minutes.
Add the garlic, ginger and chilies sautéing until fragrant, about an additional 30 seconds. Next, add the cumin, coriander, turmeric and cinnamon, stirring to combine before adding the cooked lentils, the tomatoes with their liquid and 1 cup of water.
Simmer until the mixture becomes thick and cohesive, about 20 minutes. Remove from heat.
For serving:
Serve hot over rice or with naan. Garnish with yogurt and top with pickled onions and cilantro.