Heat a dutch oven or large saucepan over medium-high heat. Add the olive oil, onions, garam masala, and salt. Stir to coat. Turn the heat down to medium and cover. Allow the onions to cook for 15-20 minutes, stirring occasionally, until they are soft and translucent and have reduced considerably.
Add the ginger, garlic, tomatoes, chili powder and crushed red pepper flakes. Cook, stirring occasionally, for 10 minutes, or until the tomatoes are almost completely incorporated into the onion mixture.
Add the chicken and stir to coat. Cover and cook, stirring occasionally, for 5-10 minutes, or until the chicken is cooked through and the sauce has thickened. If it's too dry, add boiling water 1/4 cup at a time to achieve a thinner consistency.
Garnish with cilantro and serve with hot cooked jasmine rice and naan