Pre-heat your oven to 325F.
Heat 6 tbsp of the oil in a dutch oven large enough to hold all the ingredients (or 4 tbsp ghee and 2 tbsp oil) over medium low heat.
Add the sliced onion and cook, stirring regularly, until the onion starts to brown. You may need to adjust your heat up a bit.
Once the onion has started to brown turn the heat back to medium low if necessary. Add the whole spices and cook for about 30 seconds.
Now add the nihari masala and salt and stir to combine. You want the spices coated in fat. If it looks dry add a bit more oil or ghee. Cook, stirring constantly, for about about a minute. Watch carefully. You don't want your spices to burn.
Add the beef and stir to combine. Cook the beef, stirring occasionally, until you no longer see any red. Be careful. You still don't want your spices to burn. If the spices start to stick you may need to add the remaining oil/ghee to make this work. I usually do.
Add half the yoghurt. Stir to combine and cook for about a minute. Add the rest of the yoghurt and repeat.
Add the water and the marrow bones if you can get them. Bring to a simmer. Cover the pot with a sheet of aluminium foil and then the lid. This acts similar to a flour dum. Another French trick.
Place in the 325F oven and cook. Give it a stir every hour. Cook until tender. This should take 2 to 2 1/2 hours. There's no hard and fast rule. It's done when it's tender. That depends on how close your oven is to mine. It depends on the size of the beef. And it depends on the beef. So nobody can tell you for sure. It's done when it's done I'm afraid.
When the beef is tender remove the dutch oven from the oven. Set on the stove. Give it a few minutes to stop simmering. There should be a good layer of bright red fat floating on the surface. That stuff is gold.
Skim off as much fat as you want to remove. Remember that fat has all sorts of wonderful flavours in it so don't go overboard. A little fat is good. If you are going to remove the bones now is the time to do it. But please don't think bones are a bad thing. Leaving them in is good too. Up to you.
Transfer 4 tablespoons of the fat to a small saucepan over medium low heat. Add 3 tablepoons of whole wheat flour. Stir to get all the flour coated in the fat. Cook the fat flour mixture for about 90 seconds, stirring constantly.
Add about a tablespoon of liquid from the nihari pot and stir to combine. It will turn into this thick paste. Don't panic. Do it again. And again. And again. After the 4th time add a bit more at a time. Maybe 2 tablespoons or so. Stir until it all comes together. Do that again. And again.
Now add around a 1/2 cup. Stir to combine. Finally add around a cup. Stir until it's a nice even texture. It should have the consistency of a fairly thick gravy at this point. Add this mixture into the nihari and stir to combine. Bring to a gentle simmer. If it seems a bit thicker than you would like add a bit of water. Up to a cup or so.
Taste at this point and adjust salt. It will need a bit more but not alot so be careful and creep up on it.
Add most of the julienned ginger. Keep a bit back for garnish.
To serve, spoon into bowls and garnish with a cilantro and a little bit of julienned ginger. Serve with an Indian flatbread. I like chapatis with nihari but naan works as well. Parathas are always good but the combination of parathas with nihari is pretty rich. If you are going for absolutely decadent that's a good way to do it.