In a large bowl, mix yogurt, onion paste, green chillies, ginger-garlic paste, sugar, salt, green cardamoms, black cardamoms and mace powder.
Add pieces of raw chicken in the bowl and mix well. Allow the chicken to marinate overnight. Once the chicken is well marinated, roast it in a tandoor or an oven till its 3/4th done.
Now heat little butter in a wok over moderate flame. Add bay leaves, cloves, cinnamon, red chillies and crushed coriander seeds. Sauté the ingredients for half a minute.
Now in the same pan, add chopped onion, red chilli powder, coriander powder, kasoori methi powder and tomatoes. Sauté them for 5 minutes and once done, transfer the mixture in a blender to make a puree.
Heat the remaining butter in a pan. Add the pureed mixture and bring it to a boil. Add marinated chicken pieces, salt, fresh cream and mix well. To make sure that the consistency is not too thick, add some water to the mixture.
Now add sliced green chilies, crushed fenugreek leaves and let it simmer for few minutes. Bring it to a full boil.
Transfer the dish to a serving bowl and garnish it with coriander leaves and cream.