Heat the oil in a deep pan over medium heat until hot.
Add sliced onions and cook until golden brown, about 8–10 minutes.
Stir in grated ginger and garlic, cooking for 2 minutes until aromatic.
Add chopped tomatoes, red chilli powder, turmeric, coriander powder, and salt. Cook until tomatoes soften.
Add chicken and coat well with the spice mixture. Cook for 5 minutes.
Gradually add whisked yogurt, stirring continuously. Pour in water, cover, and simmer for 25–30 minutes until chicken is tender.
Stir in garam masala, chopped coriander, mint leaves, and lemon juice. Cook for 2 more minutes.
Serve hot with rice, naan, or roti.