Heat oil in a large frying pan over medium-high heat.
Add onions. Sauté, stirring occasionally, for 2-3 minutes or until soft and translucent. Add ginger and garlic. Sauté, stirring, for about 1 minute or until fragrant.
Tip in ground turmeric, ground coriander, ground cumin, garam masala, red chili powder and black pepper powder. Stir to combine. Cook for a couple of minutes to toast them a bit.
Add tomato paste. Fry, stirring, for 1 minute. (If using fresh tomatoes, fry them until mushy). Add water, sugar and vinegar. Stir to combine.
Add chicken. Toss to coat the chicken pieces in the spice mix. Add a big pinch of salt, cover and cook on medium heat for about 30 minutes, until the chicken is tender. Add a splash of water if the curry sticks to the base of the pan at all.
Serve with rice, naan, parathas and pappadums.