Roughly chop the onion, ginger and garlic. Using a food processor, chop it into a very fine texture. I prefer the super fine chopped texture but you can also make a paste like consistency. Keep it aside to be used later.
Roughly chop the tomato and blend it. Keep it aside to be used later.
Place a pan on medium high heat and dry roast the whole spices (cumin, coriander and dry chili) for a couple of seconds. Then, let it cool before you grind it to a powder. Keep it aside to be used later.
Place a heavy bottom saucepan on medium high heat and pour the oil. Once the oil heats up, drop the onion, garlic and ginger mixture that was kept aside. Cook for 2 minutes, stirring occasionally.
Sprinkle the ground spice along wi that was kept aside along with turmeric powder and give it a stir. Cook for 3 minutes, stirring occasionally.
Drop the tomato that was kept aside and give it a stir. Cook for 5 minutes, stirring occasionally.
Once the raw smell is gone and the oil starts to release from the edges, sprinkle the garam masala powder and cook for 2 minutes.
The final texture of the curry paste should be moist but with no liquid. If you still see liquid, continue cooking for some more time.
Once the curry paste is ready, let it cool down completely and then stock it, either in an airtight jar or ice cube trays.