Take the chicken and cut into 1.5 inch pieces and keep aside.
In a bowl, add the yogurt, ginger garlic paste, black pepper and kashmiri red chili powder. Add about 1 teaspoon salt and give this a mix. Add the chicken pieces, mix very well. Cover, refrigerate and let marinate for about an hour or two. You can also let this marinate overnight if you have the time.
In a small pan, add the coriander, cumin, fennel and fenugreek seeds. Let them roast on low flame for about 2-3 minutes only until then fragnant and lighty toasted. Do ensure that they do not burn.
Coarsely grind them on a stone mortar and pestle preferably. Thats how I like to grind the whole spices. If not, you may use a spice/ coffee grinder to make a coarse spice blend.
Coarsely grind the ginger, garlic cloves and green chilies as well.
Heat a Dutch oven or a heavy bottomed pan. Add oil and let it turn warm.
Add the ginger garlic chili paste. Let it saute for 2-3 minutes after which add the finely sliced onions. Cook these for about 5-7 minutes until they become light golden brown.
If you have marinated the chicken, remove from the refrigerator at least 30-45 minutes prior to cooking. After removing, transfer the marinated chicken into the pan and give it a good mix. At this stage, add the curry leaves too.
Keep stirring the chicken for about 10 minutes on medium flame, after which cover the pan and let cook on low to medium flame.
Remove the lid after 20 minutes, add the coarse dry spice mix and mix well with the chicken. Checking for seasoning and add any extra salt if needed.
Add a cup (or two) of warm water depending on the desired consistency, mix and let the chicken cook covered for another 10 minutes or so.
Switch off the flame when the chicken has cooked through and keep the pan covered for a minimum of 30 minutes to let all the flavors soak in well.
Serve hot garnished with chopped coriander leaves and a tablespoon of ghee (optional). This chicken is good with parathas, ghee rice and even dosas.