Heat a heavy bottom pan or Dutch oven on medium-high heat. Add mustard oil (or ghee) to it. Add onions and saute for 9-11 minutes till they are golden brown
Take out onions (leave the oil behind in the pan), transfer to a blender, and make a paste. Set aside.
In the same pan, add all the whole spices and saute for one minute until you get the aroma. If needed, add 1/2 tablespoon of oil.
Add the mutton or lamb pieces. Mix it all well and sear for 7-8 minutes while stirring frequently. The color on the outside of the meat will have changed by now.
Take yogurt in a bowl. Add all the ground spices and mix well.
Turn the heat to low. Add this yogurt mixture to the meat in 2 portions, stirring each time in between to incorporate the yogurt. Cook for 5-6 minutes while stirring continuously.
Add salt and onion paste, which was kept aside. Mix well with the curry. Cover with a lid and adjust the heat to low so it's simmering gently.
Cook for 1 hour or up to 1 hour 30 minutes, giving it an occasional stir, until the meat is tender. If the water has all dried up, then add 1/2 cup more hot water. Check that the meat is cooked well by using a fork.
Remove the lid, and continue cooking for another 10 minutes (to reduce the sauce slightly). The meat should be very tender by this stage.
In a tadka pan, heat the ghee. Once hot, take the ghee off the flame. Then add the mild Kashmiri red chili powder to the ghee (we don't want the chili powder to burn). Mix and add to the curry. This helps to add an amazing bright color to the curry.
Your Mutton Rogan Josh is ready. Garnish with fresh cilantro leaves. Serve it with roti or basmati rice.