Marinate chicken with yogurt, turmeric, chili powder, and salt, allowing it to rest so the flavors penetrate and the texture improves before cooking.
Cook onions in oil until golden brown, ensuring you stir occasionally so they caramelize evenly without burning.
Add ginger-garlic paste and tomatoes with spices, cooking thoroughly until oil separates, which indicates the base is properly developed.
Add marinated chicken and cook until it releases juices, allowing the flavors to concentrate before adding any liquid.
Pour in water, cover, and simmer gently until the chicken becomes tender and absorbs the spice mixture.
Finish with garam masala and garnish, letting the curry rest briefly so the flavors settle before serving.