In a bowl, whisk together the plain yogurt, fresh lemon juice, cumin, garam masala, red chili powder, salt, ginger, and garlic. Add the bite-sized pieces of chicken and toss until well-coated. Marinate for at least an hour, preferably overnight.
Heat vegetable oil in a large skillet over medium-high heat. Add the marinated chicken in batches if needed, cooking until browned all over for approximately six minutes. Remove from skillet and keep warm.
In the same skillet, melt butter over medium heat. Add finely diced sweet onions and sauté until softened, about three minutes. Add ginger and minced garlic, sautéing for 30 seconds until fragrant.
Stir in brown sugar, ground coriander, cumin, smoked paprika, garam masala, and salt. Allow spices to become aromatic, then pour in the tomato sauce. Simmer gently for 3-5 minutes until the sauce thickens.
Gently stir in the heavy cream until fully incorporated into the sauce.
Add the partially cooked chicken back into the pan along with any juices. Cook for an additional 8-10 minutes until chicken is fully cooked and absorbs flavors. Add water if the sauce is too thick.
Serve hot over cooked basmati rice or with naan bread. Garnish with chopped cilantro.