Smash the black cardamom pods, and remove the seeds. Place in a small bowl with the cassia or cinnamon, cloves, whole chilies (if using), whole green cardamom, fennel seeds, and whole mace. If using ground chilies or ground mace, omit here because you will add them a little later.
In a spice grinder, grind these whole spices to a coarse powder. Using a sieve, separate the larger pieces and run them through the grinder again. Return to the same bowl and if you didn’t use the whole chilies and mace earlier, stir them in now along with the ground ginger and salt.
In a large sauté pan or dutch oven, heat 1 tablespoon ghee over medium heat and add a pinch of asafetida, if using. Stir for one minute.
Add cumin seeds and sauté for a minute or two until aromatic, and the cumin seeds turn a slightly darker shade.
Remove the cumin seeds from the pan and turn the heat to medium-high and add another 2 tablespoons of ghee or oil. Sauté the meat in two batches, so as not to crowd the pan. Cook until the meat has browned well. Turn the heat to medium and add back the first batch of browned meat, cumin seeds, salt, and ground spices. Cook for 2 to 3 minutes, stirring frequently so the spices don’t burn.
After the spices are well cooked, stir in the yogurt,cover and simmer over the lowest heat setting. Take peek at the masala every 15 minutes or so to check on the liquid level, and stir to prevent burning. Add water as needed; the liquid level should be at least halfway up the meat. Cook until the meat is tender; about an hour for lamb or beef. Adjust the time depending on the protein you are using. Chicken will probably take 20 to 30 minutes.
When the meat is cooked, check for seasoning. You are looking for a thick sauce, but not a dry one. Add a little water if your curry has cooked down completely. Taste for seasonings; add additional chili powder, salt, and additional yogurt to mellow the spicing, to your taste.
Traditional recipes call for ratanjot, a hard to find herb that lends a vibrant red color to food. I’ve left it out because apparently it is used not so much for flavor, but for its color.
If you are not a fan of lamb, rogan josh can be made with beef, or boneless chicken thighs as well.
Cooking meat on the bone is more traditional, and if you would like to do that, have your butcher cut lamb shanks into 4 or 5 pieces and proceed with the recipe.
Shortcut: buy meat cut into the size you want to cook with.
Rogan josh curry is a great make-ahead dish and it will taste even better the next day, as will most curries.