In a bowl, combine chicken with all of the ingredients for the chicken marinade; let marinate for 10 minutes to an hour, or even overnight if possible.
Heat oil in a large skillet on medium-high heat. When sizzling, add marinated chicken. Fry until browned for only 3 minutes on each side, you will finish cooking it in the sauce. Set aside and keep it warm.
Melt the butter in the same pan. Fry the onions until translucent.
Add garlic and ginger and sauté for 1 minute, then stir in garam masala, cumin, turmeric and coriander.
Stir in the tomato puree, chili powders and salt. Allow it to simmer for about 10-15 minutes, stirring occasionally until sauce thickens.
Stir the cashew milk and sugar through the sauce. Add the chicken and its juices back into the pan to finishing cooking until it is cooked through, about 10 minutes. Allow the sauce to thicken. If you need to, add a bit of water to thin it out.
Garnish with cilantro and serve with rice and fresh homemade Naan bread!