Wash and drain chicken legs. Drain well and pat dry with paper napkins.
Combine chicken with all ingredients mentioned under marinade in a large bowl for at least one hour or best overnight.
Preheat oven at 375 deg F. Dab oil on grill with pastry brush. Place oven liner on the bottom shelf of oven to catch the drippings.
Grill chicken for approximately 45 minutes turning them to get nice grill marks on all sides and basting them with olive oil.
Remove from oven and keep them aside.
------------------------------
For Gravy::
Heat oil in non-stick pan. Add cinnamon, cardamoms, cloves, and black cardamom. Stir for few seconds till aromatic but not overly browned.
Add onions and saute till wilted.
Add ginger-garlic paste. Stir for a minute.
Add tomatoes and cook till mushy.
Add red chilli powder, turmeric powder, coriander-cumin powder, garam masala powder, meat masala, and salt. Stir well and cook the mixture for a minute.
Add 1 cup water and any remaining marinade. Let masala cook for another couple of minutes.
Cool mixture thoroughly. Discard black cardamom. Blend it till smooth puree is obtained. Strain the puree to discard coarse bits.
Heat butter on low flame in a casserole. Add bay leaf and saute for few seconds.
Add puree and remaining water. Cover with lid and let it simmer for 5 minutes.
Add cream and adjust salt to taste. Sprinkle black pepper powder. Stir well.
Add kasoori methi powder and stir again.
Add chicken legs to gravy and cover pan with lid. Simmer for 5 minutes.
Serve hot with naan/roti/rice.