Add chicken, yogurt to a large bowl and mix well. Set aside to marinate at room temperature for 30 minutes.
In a heavy bottom pot, heat oil and add bay leaf, cinnamon stick, star anise, cloves, black peppercorns, mustard seeds, cumin seeds and temper for 2 minutes. Add onions and garlic and sauté until lightly golden brown, about 8-10 minutes.
Add cumin, coriander, garam masala, cayenne, salt, turmeric and saute for about 3 mins, add crushed canned tomatoes, stir to mix well.
Simmer on medium heat until the oil separates, and it is brown, about 15 minutes.
Use a wooden spoon to scrape any brown bits off the bottom of the pot.
Reduce heat to low and add marinated chicken. Mix everything to incorporate well. Cover and cook for 30-40 minutes on low heat.
Uncover and cook on medium heat for 5 minutes until the gravy is thick and the chicken legs are cooked through.
Garnish with cilantro, star anise, dried red chillies and serve with steamed rice.