Place the lamb pieces in a large bowl. Add yogurt, ginger paste, garlic paste, salt and all the mentioned ground spices except garam masala. Mix well using hands (wear gloves!) so the lamb is coated very well. Cover the bowl and let marinate, refrigerated for 4 to 6 hours or preferably overnight.Take the marinated meat out of the refrigerator, atleast 45 minutes prior to cooking. The closer it is to room temperature, the tender it will cook.
Heat oil in a heavy pot (3 qt or larger) on medium heat. I use my dutch oven. Add the whole spices and let fry for 5-7 seconds to release flavor.
Add the chopped onions to oil. Cook them on low medium heat for 5 to 7 minutes until soft, translucent and just turning light brown. Stir as needed while they cook. Do not let them get too dark because we dont want a strong onion flavor or color in korma.
Lower the heat and add the marinated lamb to the cooking pot. Stir gently for 2-3 minutes so the yogurt does not curdle.
Then, raise the heat to low medium. Cook the lamb with the onions for 7 to 10 minutes until all the pink color is gone. We do not need to brown the lamb. Some oil will begin to show at the sides of the pot.
Add the tomato sauce and salt. Stir well and cook for 3 to 5 minutes until the tomatoes blend into the masala and the lamb mixture looks shiny.
Pour in 1 cup hot water to just cover the lamb. Stir, cover the pot and cook on low for 45 minutes to 1 hour or until the lamb is tender but not falling apart. Adjust the cooking time, as needed depending to the cut, quality and size of your lamb pieces. While its slow cooking, uncover and check the pot now and then and add a little hot water (¼ cup at a time) if needed. Don't add too much water. Keep the sauce thickish yet pourable, not watery. The lamb should be tender and cooked through but not falling apart.
When the lamb is cooked, taste and adjust the salt if needed. Stir in cashew paste, heavy cream, garam masala powder and crushed kasuri methi. Simmer for 5 to 10 minutes so the flavors blend together.
Turn off the heat and let the korma rest for 15 to 20 minutes if possible.Serve warm with a little cream on top and a sprinkle of kasuri methi. Pair with naan or cumin rice.
Notes
Don't cook cold marinated meat since it tends to toughen. Always pull the meat out of refrigerator at least 45 minutes before you begin cooking.
If you do not have whole spices, add ⅛ teaspoon ground mace, ⅛ teaspoon ground cloves, ½ teaspoon ground cardamom.
In many restaurants, they add coconut to lamb korma. You can finish this korma with coconut cream if desired. We do not prefer the coconut version so I don't add it.I use heavy cream to finish.