Heat the oil in a frying pan. Add the coriander, turmeric and paprika. Cook for 1 minute, until fragrant.
Add the ginger and garlic. After 1 minute, add the onions and reduce heat to low. Cook gently for 10 minutes.
Add the tomatoes and water and stir. Simmer for 1 1/4 hours.
Halfway through cooking, add chilli powder to taste. At the end of cooking, add salt to taste.
Remove from heat and puree with an immersion blender (or in batches in a liquidiser). At this point you can add your meat of choice and simmer for 35 minutes, or you can cool the sauce to room temperature and then freeze in batches for use later.
You can also use fresh green or red chilli instead of the chilli powder. You can add the whole chilli to the sauce whilst it simmers, then remove it before pureeing.