In a spice grinder (or with a mortar and pestle) grind the following into powder - coriander seeds (2 tablespoons), fennel seeds (1 tablespoon), ginger powder (1/2 tablespoon) and cumin seeds (1 tablespoon).
Place a large pot or wok on medium-high heat and add oil, bay leaves and finely chopped onions and saute until the onions have turned into a deep brown color.
Immediately add 1/2 cup water (to stop the onions from browning more).
Now add the beef shank pieces and bones.
Then add the following- ginger-garlic paste, salt, red chili powder, Kashmiri powder, turmeric and the spice powder we ground earlier in step 1.
Saute for around 5 minutes stirring well to coat the meat with the spices.
Then add 2 liters of water.
Cover and bring the mixture to a boil. Then reduce the heat slightly and let the meat cook for 1 ½- 2 hours or until the meat is 90% cooked.
Give the flour/water mixture a quick mix because the flour can settle down. Now add it slowly to the nihari while stirring the nihari constantly. This will prevent the flour from clumping.
Cover and let the nihari cook for 20 minutes more.
In the meantime, grind the following into powder - black peppercorn (1/2 tablespoon), cinnamon stick (2 inch), star anise (1), black cardamoms (2) and green cardamoms (4-5).
Mix this ground spice in 1/2 cup water very well until it is dissolved and then add it to the nihari (mixing in water prevents formation of spice clumps).
Cover and reduce heat to a simmer and cook for further 1 ½ hour. By this time the meat should be completely cooked.
Switch off the heat and leave it undisturbed for 10 minutes (this allows the flavors to deepen).
Garnish with julienned ginger and add lemon wedges when serving.
Serve hot with naan or even rice (before serving you can remove the bay leaves and the bones from the nihari).