In a large bowl, combine Greek yogurt, garlic, garam masala, ground cumin, and kosher salt. Mix well to form the marinade.
Add cubed chicken to the bowl and toss until all pieces are coated in the marinade. Cover the bowl with plastic wrap and refrigerate for at least 1 hour, or overnight for more flavor.
When ready to cook, heat olive oil and 3 tablespoons of the unsalted butter in a large skillet over medium-high heat until sizzling.
Add marinated chicken in a single layer. Cook in batches to avoid overcrowding the pan. Cook for about 3 minutes per side, until browned but not fully cooked through. Transfer the chicken to a plate and loosely cover with foil to keep warm.
To the same skillet, add the remaining 3 tablespoons of unsalted butter. Once melted, add diced onion and cook, stirring occasionally with a wooden spoon, until soft and translucent, about 6–8 minutes. Scrape up any browned bits from the bottom of the pan as the onions cook.
Add garlic, garam masala, ground cumin, ground ginger, and chili powder. Stir and cook until fragrant, about 30 seconds.
Reduce the heat to medium. Stir in tomato sauce, heavy cream, and granulated sugar. Bring the mixture to a gentle simmer.
Add the browned chicken back into the skillet and stir to combine. Simmer for 12–15 minutes, or until the sauce thickens slightly and the chicken is fully cooked through (internal temperature should reach 165°F).
Taste and season with kosher salt as needed. Garnish with chopped fresh cilantro and serve hot, ideally with rice or naan.