Add all the ingredients for the chicken except oil into a bowl and toss to combined.
Leave to marinade for 30 minutes.
Heat wok on med high and add oil.
Brown chicken, then set aside.
In the same wok, heat on med high and add oil.
Saute onion until softened, then add cinnamon, cardamom, bay leaf, cloves, and garlic.
Saute for 30 secs, until fragrant.
Then add tomato puree, cumin, garam masala, coriander, cayenne pepper, and tomato paste.
Stir to combine.
Add sugar, and season with salt to taste.
Bring to boil, add browned chicken pieces, and add enough water to cover chicken.
Stir to combine, and lower heat to med low.
Allow to simmer, covered for 20-25 minutes until sauce thickens, and chicken is tender.
The sauce should be of thick pasta sauce consistency, so add water or turn up heat to adjust to that consistency.
Turn heat to low, then pour in cream.
Season with more sugar, salt, cayenne pepper, garam masala if needed.
Remove from heat, and fish out bay leaf, cardamom, cloves, and cinnamon stick.
Serve on spiced basmati rice, garnished with chopped cilantro.