Finely chop the onion and in a kadhai or wok, heat the oil. Add chopped onions, ginger paste and garlic paste. Stir and cook on high flame for half a minute and then reduce the flame and continue stirring till the onions have softened.
Add the curry powder, red chilli powder, kashmiri red chilli powder, curry leaves, cinnamon and continue stirring. Sprinkle some water so that the spices don't stick to the bottom. Cook the spices till they start releasing oil from the sides. It takes about 3 - 4 minutes.
Add the chicken, chopped tomatoes, salt and 1 tsp sugar and mix everything thoroughly. Keep the heat high for a minute so that the chicken somewhat gets caramelised. Then reduce the flame to medium and continue cooking for 8 to 10 minutes, stirring and sprinkling water if necessary.
Add the coconut milk, half a cup of water and vinegar. Stir and let it simmer for a few minutes. Then reduce the flame, cover the pan with a lid and let the chicken cook.
Occasionally, remove the cover to check the chicken if its cooked or anything is sticking to the bottom. Give it a stir and cover and continue cooking till the chicken has become tender
Check the seasoning and add more salt if required. Add the extra sugar if you feel you need to balance out the spices more. Finally add a split green chilli and some more extra curry leaves for garnish.
Depending on how thick or thin you want the gravy, adjust the liquid. Let it continue to boil for a few minutes if you want a thick gravy.
Let the chicken sit for half hour, if you have the patience and then serve with steamed rice.