Marinate chicken with all the marinate ingredients for 30 minutes.
After 30 minutes, in a large non stick pan, heat cooking oil on medium-high heat.
When hot, cook marinated chicken for about 2 minuntes each side or until browned. Set aside.
In the same pan, cook butter and onion over medium heat until translucent.
Add grated garlic and ginger and stir fry for about 30 seconds.
Then add turmeric powder, ground coriander, ground cumin and garam masala. Stir until well mixed.
Add tomato puree, red chili powder, and salt. Stir occationaly.
Turn the heat to low and simmer the sauce for 15 minutes.
After 15 minutes, add chicken and heavy cream and cook again for 10 minutes. Stir occasionally.
Turn off heat.
Serve with warm rice and garnish with celery.