Add onions and salt to the same pan and saute until onions turn golden brown in color (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 pureed tomatoes and cook for 3-4 minutes.
Add coriander powder, Kashmiri red chili powder, turmeric powder, garam masala powder, and cumin powder, and cook for 2-3 minutes.
Add 1 cup water and garlic knobs and cook until oil starts to separate on the sides of the pan (3-4 minutes).
Now add yogurt and cook for another 2-3 minutes.
Add the remaining 2 cups of 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 25-30 minutes until the chicken is cooked and tender and the masala is cooked well too. Stir a few times in between cooking.
Add ghee and mix well. Garnish with cilantro and serve hot.