Wash the chicken pieces thoroughly. (I used chicken with bones,you can go for boneless too.) Add all the ingredients mentioned under "For Marination" to a mixing bowl, then add the chicken pieces.
Mix well,so that all the ingredients are coated on to the chicken pieces well. Keep the marinated chicken for 15 minutes. Meanwhile preapre the 1st Masala.
In a heavy bottom pan, add the butter, then add onion, tomato, cashewnuts, kasoori methi and peppercorns. Fry them on a medium flame till the onions are brown and pulpy.
Keep this aside to cool. When cooled grind them with milk to a smooth paste.
In the same pan,add the marinated chicken pieces. Do not add any oil or butter and roast them on a high flame till they are cooked and the outer skin is slightly charred. Make sure you do not burn the chicken pieces. (You can do this step using an oven as well)
When done,take all the pieces on a plate and let them cool. Now, prepare the 2nd Masala.
In the same pan, add butter and add all ingredients mentioned under the 2nd Masala. Fry them on low flame till they are fragrant. Let the masala cool.
When cooled, grind to a smooth paste by adding a little water. Now, shred the chicken pieces. You can retain the bones in the gravy or discard them.
In the same pan, add butter(here I have added 2 tablespoons). To this add chopped cilantro, fry for a minute, then add the 1st masala.
Fry the masala for 1/2 a minute then add another tablespoon butter. Again fry this for 1/2 minute. When the oil starts separating, add the 2nd masala.
Add salt and sugar. Mix it once and add the shredded chicken.
Add milk or water as per choice to make gravy. (I used 1/4th cup milk.) Here I added another tablespoon butter(optional). Mix once.
Add kasoori methi. Mix once. Do not cook this for long. Let it cook for about a minute and turn off the gas.
Serve it with Kulcha / Naan/ Roti/Rice.