Cut onion into quarters. Boil onion, garlic and ginger in enough water for 10 mins. Discard water and let everything cool.
Grind together boiled onion, ginger, garlic to a fine paste.
In a big mixing bowl add cleaned chicken, Yoghurt, onion ginger garlic paste, all dry spices and salt to taste.
Mix everything well and marinate in the refrigerator for at least 1 hours or overnight.
Remove marinated chicken at least 1 hour before preparation and let it come to room temperature.
Shake off the extra marination and add a few pieces of chicken to a hot pan. Stir fry on medium-high heat for 3-4 minutes until you see small brown spots. Take out of the pan and keep covered.
Repeat the above step and cook the rest of the chicken, few pieces at a time.
Once all the chickens are browned, add all the browned chicken back to the pan and any leftover marination.
Add 1/4 cup of water, cover and cook on low heat for 20 minutes or until the gravy has thickened.
Garnish with fresh coriander leaves while serving.