Grate the garlic and ginger on a microplane to create a paste. Add the chicken to a bowl, along with the garlic and ginger paste, turmeric, and salt. Mix well to combine. Marinate for 1 hour up to 24 hours.
Grind all spices for the pepper masala powder in a spice grinder or mortar and pestle. Set aside.
Place a large, high-rimmed pan or pot over medium heat. Add vegetable oil and curry leaves and fry for 1 1/2 minutes or until they start to crisp. Add the onions and fry for 10 minutes until soft. Add the bird's eye or green chilli and fry for 1 minute. Add the tomatoes and cook for 8-10 minutes, breaking them down.
Increase the heat to medium-high. Add the marinated chicken and cook for 6-8 minutes. Add the pepper masala powder and cook for 1-2 minutes.
Add the water or chicken stock and deglaze the pan. Season well with salt and bring to a boil. Reduce heat to low and simmer for 30-40 minutes with the lid on. Remove the lid and add chopped coriander (cilantro). Mix well, check the seasoning, and remove from the heat. If the gravy becomes too thick, reduce it with a bit of stock or water.