Combine chicken with yogurt, garlic, ginger, garam masala, turmeric, cumin, chili powder, salt, and oil in a large bowl. Stir until the chicken is evenly coated. Cover and refrigerate for at least 30 minutes or overnight.
Heat 1 tablespoon of oil in a large skillet over medium heat. Sear the marinated chicken in batches for about 3 minutes per side, until browned but not cooked through. Remove to a plate and set aside.
In the same pan, melt 3 tablespoons of butter. Add onions and cook for 5–7 minutes, scraping up any browned bits. Add garlic, ginger, garam masala, and cumin, and cook until fragrant, about 30 seconds.
Add crushed tomatoes, chili powder, cayenne (if using), salt, and cashews. Simmer for 10 minutes, stirring occasionally, until the sauce deepens in color.
Transfer the mixture to a blender and process until smooth. Return it to the skillet over low-medium heat and stir in the heavy cream and sugar.
Add the seared chicken and any juices back into the sauce. Simmer until the chicken is cooked through, about 10–15 minutes. Stir in the remaining 3 tablespoons of butter until melted. Serve hot with basmati rice or naan.