Heat the oil in a large pot over medium heat. Once hot, add the mushrooms and stir. Cook for 6-8 minutes, stirring once halfway through. The mushrooms should be starting to brown and reduce significantly in size.
Reduce the heat to low-medium and add the onion. Cook for another 6-8 minutes, stirring frequently, until the onions are translucent. Reduce the heat if the onions are catching. Stir in the garlic and cook for another couple of minutes.
1 medium onion, 2 cloves garlic
Add the cumin, cinnamon, cardamom, and coriander, and stir constantly for about 30 seconds to toast. It will be pretty dry at this point, but the tomatoes will lift any bits that are starting to catch.
1 teaspoon cumin, ½ teaspoon cinnamon, ½ teaspoon cardamom, ½ teaspoon coriander
Stir in the tomato puree and water. Add salt. Cover and increase the heat to bring to a low boil, then add the lentils. Reduce the heat to simmer, covered, for about 25 minutes, or until the lentils are tender.
Remove from the heat and stir in the garam masala and pepper. Cover and let it rest for a few minutes, then stir in the yogurt and taste. Adjust seasoning as needed and serve hot. This is a thick curry and can be served as is or with cooked rice or naan.
1 teaspoon garam masala, ½ teaspoon black pepper, 4 tablespoons plain yogurt
Store leftovers in the refrigerator for up to three days. This freezes best without the yogurt added. If you plan to freeze a portion, I recommend freezing it without the yogurt and stirring it in separately before serving.
Notes
Use whole or ground cumin and coriander. Unless you've ground them fresh yourself, don't worry about adjusting the amounts (there's more ground spice in a teaspoon as it takes up less volume, but will be less flavourful than the whole spice).If your garam masala isn't spicy, add some hot pepper flakes (to your taste) along with the other spices.The fresher the spices, the better they'll taste. If you find that your spiced dishes are often tasting a bit bland or boring despite plenty being added, it's probably due to old or poor-quality spices. If it's been sitting open (and even worse, in a warm spot like above the stove) for ages, it's not going to taste like anything.Some tinned tomatoes are very acidic. If you know that yours are, or the curry tastes too acidic, you can balance it out by adding a bit of sweetener. Do this after adding the yogurt.Old lentils will need more time to look. You can't know in advance if they're old right from a package, but give yourself a little leeway in case you need to cook for a few more minutes.