Finely chop green chilis and coriander leaves. Mince the garlic, peel and grate the ginger. Mix together. You can also blend all of these ingredients in a food processor instead of chopping and mincing by hand.
Prepare the chicken by cutting it into bite size pieces. Season with red chili powder, turmeric and salt. Add the mixture of ginger, garlic, green chili and coriander. Stir well and let it marinate in the fridge for at least 1/2 hour.
If you plan on using fresh tomatoes, this is the time to submerge them into boiling water for a couple of minutes. This will help with peeling the skin off.
Cool them, peel and dice finely. Set aside.
Peel and slice the onions. Using a large frying pan, add 2-3 tbsps. of vegetable oil. Warm up the oil, add onions and sauté until soft but not browned.
Add all the chicken with the marinade and continue cooking until the chicken is cooked through. Add tomato puree (or diced tomatoes), water, coconut flakes and garam masala. Stir, cover the pan and continue cooking for an additional 15 min.
The sauce might be a little too loose. In this case, dissolve one tbsp. of corn starch in one tbsp. of cold water. Add this mixture to the curry dish, stir well, bring to a boil. The sauce should thicken substantially. Turn off the heat and serve.