Heat the oil in a large deep frying pan over medium-high heat. Add onions and garlic, and cook for about 2 minutes. Add the chicken, and season with turmeric, chilli powder and salt. Fry gently, scraping the bottom of the pan frequently and turning the chicken.
Pour in the tomatoes with their juice, cover the pan, and simmer over medium heat for 20 minutes. Uncover, and simmer for another 10 minutes to let the excess liquid evaporate.
Add the ghee, cumin, ground coriander, ginger and fresh coriander, and simmer for another 5 to 7 minutes. Serve the chicken pieces with sauce spooned over the top.