Place the diced chicken in a medium bowl and sprinkle with 1.5 teaspoons of salt. Set aside.
In a small prep bowl, mix the curry powder, cumin, turmeric, cayenne pepper and coriander. Set aside.
If not using pre-mixed garam marsala, in a separate small bowl mix 1.5 teaspoons of coriander, the black pepper, cinnamon and cardamom. Set aside.
Heat the olive oil in a large skillet over medium heat. Once the oil is hot, but not smoking, add the chicken. Stir frequently until the chicken is browned on all sides but is still pink in the middle, approximately 10 minutes. Using a slotted spoon, remove the chicken from the pan but leave any remaining juices and fat.
With the pan still on medium heat, add the onions, shallot, garlic, serrano pepper and ginger to the pan. Add a tablespoon or two of olive oil to the mixture if it is too dry or sticking to the pan. Cook, stirring frequently, until the onions are soft and translucent, approximately 8 minutes.
Add the curry powder spice mixture to the pan along with the 2/3 cup of chicken broth. Stir until thoroughly combined and heated through, about 2 minutes.
Add in the tomatoes, coconut milk, parsley and garam masala spice mixture. Continue to stir until well combined. Bring to a boil, then turn the heat down as low as possible while maintaining a simmer. Allow to bubble slightly, stirring periodically, for 25 minutes or until chicken is cooked through and sauce is thickened. Add salt as desired.
Right before serving, top with a spritz of fresh lemon juice and chopped parsley or cilantro. Enjoy!