Heat oil in a large pan over a medium-high heat.
Add the chicken and cook in batches until brown. Remove the chicken and set aside.
Add the butter to same pan and heat at medium heat and then add onion, ginger & garlic and cook for 3 minutes.
Add all the spices and tomatoes and cook on a low heat for 5 minutes, stirring occasionally. It’s important to keep the heat low to ensure spices don’t burn.
Return the chicken to the pan and add the and cream.
Turn the heat to low and cook at a gentle simmer without lid for 10 minutes or until the chicken is cooked through.
Remove cinnamon stick.
Serve immediately with steamed rice and papadums.