In a medium bowl, combine lemon juice, garam masala, cumin, and yogurt, Add the chicken and coat it with the yogurt mixture. Marinate for 30 minutes up to overnight.
Heat a skillet and add 1 tablespoon of oil. Remove the chicken from the bowl and allow any excess marinade to drip off. Brown the chicken on both sides (about 6 minutes). Remove the chicken and set it aside on a clean plate.
Over medium heat, melt butter then add onions cooking until tender. Add spices (ginger, garlic, cumin, garam masala, coriander, chili powder, turmeric, and cinnamon stick). Stir and cook for about 1 minute or until fragrant.
Add the chicken broth, cooked chicken, crushed tomatoes, and sugar. Simmer for 10 minutes or until slightly thickened. Pour in the cream and cook for 5-10 minutes to allow the mixture to incorporate and thicken. Discard the cinnamon stick.
Serve over rice and top with cilantro if desired.