Heat a pan on a low flame. Add red chilies, coriander seeds, cinnamon, cloves, cardamoms, pepper, mace and nutmeg. Roast until golden without burning. If using nutmeg powder, add it in the next step.
Add coconut, cumin, sesame seeds and poppy seeds. Saute until all the ingredients turn to golden. Do not over roast as the spices will taste bitter.
Set these aside and cool. Blend spices to a fine powder.
Meanwhile add 1 tablespoon oil to a deep pan or pot & heat it. Add onions & fry/saute them until golden.
Add chopped ginger garlic and saute without burning until the raw smell goes off. Set these aside to cool.
Transfer onion and ginger garlic to the spice powder and blend again to a fine powder. It will be slightly oily and lumpy but make sure ginger garlic is ground well.
Add this masala and turmeric to the chicken. Mix well to marinate. Set this aside for at least 15 mins to overnight (in the refrigerator).
Pour oil to the same pan and add tomatoes. Sprinkle salt and saute until the tomatoes turn soft.
Transfer marinated chicken and saute well for 3 to 5 mins on a medium heat, until the masala begin to smell good.
Add salt to the chicken. Pour hot water just enough to partially cover the chicken. The amount of water to use depends on the kind of chicken, you may start with half cup water.
Mix well. Add coriander leaves. Regulate the flame to low flame and cook chicken until fully cooked, fork tender. As you cook, add more hot water if the curry turns too thick. If it is too runny, cook uncovered on a slightly higher heat.
You will also see traces of oil over the curry when it is done. Taste test and add more salt if you want.
Serve kolhapuri chicken with plain steamed rice, roti or chapati, kachumber, onions slices and lemon wedges.