Dry roast whole spices (coriander, cumin, red button chilli, kashmiri chilli, dry fenugreek leaves) and grind into a fine powder. Set aside.
Heat oil in a wok, add chicken, salt and pepper. Fry for 5 minutes until color changes. Then remove chicken with a slotted spoon and set aside.
In same oil fry grounded spices and other spices ( chopped garlic, all spices powder, black pepper powder, red chilli powder and turmeric) for 30 seconds and then add green chilli paste, fry for another 30 seconds.
Throw in onions and cook for 3 minutes until translucent.
Now pour in tomato puree and salt. Cook for 3-5 minutes until oil separates.
Add chicken to the gravy and cover. Cook for 10-15 minutes until chicken is tender. (Add ¼ cup water, if required).
Add 1 tablespoon butter (if using) and ginger. Remove seeds of chilies and cut each into 3-4 length-wise slices. Add to the Chicken Karahi and serve with tandoori nan or chappati and lemon wedges.