Set a stock pot on medium heat, add oil, jeera and sliced onions, saute until onions are light golden brown.
Further, add garlic, Ginger, Green chillies, powdered spices, whole chillies and green cardamom, mix well and cook for a minute.
Now, add tomatoes, cashew nuts, coriander stems with its roots, salt to taste and butter, mix and cook on medium high heat for 5 minutes.
Further lower the heat, cover and cook for 25-30 minutes on medium low heat. Stir in intervals to avoid from sticking to the pan and burning
As the tomatoes will leave their water, there is no need to add additional water, let them cook in their own water. If incase it starts to dry please add hot water as required to Cook the tomatoes, do not add too much of water.
Once the tomatoes are cooked, switch off the flame and let the mixture cool down to room temperature.
Once cooled, transfer the mixture to a grinding jar and grind to a fine puree, if you're in hurry you can add ice cubes and grind it.
Once the entire batch is pureed, strain the puree with a sieve and keep aside for later use.