Preheat oven to 220°C
Rub tomatoes in a little oil, season with salt and then roast for 15 - 20 minutes or until soft and collapsed.
Dry roasted cumin and coriander seeds for 10 - 30 seconds or until they release a fragrant smell. Transfer to a mortar & pestle and grind down into a powder. Add garam masala, fenugreek leaves, and turmeric. Blend together then remove 1/3 of the spice mix and set aside.
Heat oil (or ghee) in a medium saucepan or cast iron pot and fry onions until soft. Add garlic, ginger and green chilli and cook a further minute.
Next, add the 2/3 spice mix and stir around the post for 30 seconds. Spices should always stay hydrated, so add a splash more oil if needed to keep them moist.
Place roasted tomatoes into the pan and cook down gently until reduced. Add tomato paste and on low heat let the paste cook down, darken and become thick and sticky.
When the tomatoes have melted into the sauce, add the red lentils along with vegetable stock. Combine well and bring to the boil. Once boiling turn to simmer, cover and cook gently for 25 – 30 minutes. Occasionally check to ensure the lentils don’t cook too fast. They should be soft but retain bite and texture. If your stove heat is too aggressive and the dahl starts to dry out, add a small amount of water to loosen it, but be very gentle stirring it though so you don’t turn the dahl to mush.
Remove the lid and gently place baby spinach on top of dahl. Replace the lid and remove pot from heat. Let the dahl rest for 5 minutes so the steam inside the pot can wilt the spinach. Remove the lid, add a big squeeze of lemon juice and gently stir the wilted spinach through the dahl. Taste and season with salt if needed.
To finish the dahl, melt the two tablespoons of butter in a small pan. Add the reserved 1/3 spice mix and cook for 10 seconds in the butter. Drizzle spiced butter over the dahl.
Divide between bowls and serve with yoghurt and flatbreads or naan.