Mix bone-in skinless chicken, Kashmiri red chilli powder, turmeric powder, salt, and lime juice in a large mixing bowl.
Refrigerate for 30 minutes.
Heat mustard oil. Add the marinated chicken to the pan and arrange the pieces in a single layer. Fry for 4-5 minutes on each side. If your pan is not very large, then fry the chicken in batches.
Remove the fried chicken to a plate and set it aside.
Add finely chopped onions and salt to the same pan and saute until onions turn golden brown in colour (10-12 minutes). Stir frequently.
There will be some liquid released by the chicken in the pan but that is normal. Add ginger-garlic paste and saute for another minute.
Now add tomato puree and cook for 3-4 minutes.
Add coriander powder, Kashmiri red chilli powder, turmeric powder, garam masala powder, and cumin powder, and cook for 2-3 minutes.
Add water and whole garlic knobs and cook until oil starts to separate on the sides of the pan.
Now add whisked yogurt and cook for another 2-3 minutes.
Add milk and water and bring the curry to a boil.
Cook for 3-4 minutes. Add the fried chicken pieces back to the pan and mix well.
Reduce the heat to low. Cover the pan with a lid and cook for 15-20 minutes until the chicken is cooked and tender.
Add 2 tablespoon ghee and mix well. Garnish with 2 tablespoon chopped cilantro and serve hot.