Season chicken with salt, pepper, garlic and onion powder.
In a large skillet, heat canola oil. Add chicken and cook, stirring often until the chicken is cooked through for about 5 minutes.
Remove chicken from the pan and keep warm. Add the butter and allow it to melt completely then add in ginger and onion. Stir regularly, cooking until the onions are translucent for about 4-5 minutes.
Stir in garlic, cooking for about 30 seconds to a minute or until fragrant. Be careful not to burn it.
Now stir in the garam masala and chili powder. Then pour in the tomato sauce, tomato paste, yogurt and heavy cream. Stir to combine fully. Bring to a simmer and cook for about 10 minutes to allow the sauce to thicken.
Serve with rice and naan.