Heat the oil in a large non stick saucepan and add the whole spices then fry for about 20 seconds until aromatic.
Add the onion and cook over a moderate heat for about 10 minutes, strring often, until it is a rich golden brown.
Stir in the ginger and garlic and cook for about 40 seconds before adding the salt and powdered spices, then stir for a few seconds.
Add the tomatoes and cook over a moderate heat for about 10 minutes until the liquid in the pan has evaporated and the oil leaves the sides of the dry masala.
Add the chicken and brown over a moderate-high heat for 3-4 minutes then add enough water to almost cover the chicken.
Bring to a boil then cook over a low to moderate heat for 20-30 minutes until the chicken is cooked through.
Stir in the garam masala and coriander leaves just before serving.