For the marinade
Heat oil in a heavy based pan, add the whole spices and brown lightly.
Add the onions, garlic & ginger. Sprinkle in salt and reduce heat, cover and allow the onions to soften. This should take around 10 minutes.
Once the onions have softened (or meat juices have evaporated) add all the ground spices and mix well.
Reduce the heat and cook the spices out for two minutes, add a splash of water if it catches.
Add tomatoes, yoghurt and chicken; mix well. Add water and cover. *You can add vegetables at this point, cook until soft*
Simmer the curry for 10 minutes.
Squeeze in lime juice and adjust the seasoning then add the fresh coriander and serve.