Heat oil in a 4-5 quart cooking pot over medium-high heat.
Add bay leaves, cardamom, cinnamon cloves, peppercorn, and green serrano. Cook, stirring for about 30 seconds.
Add the chopped onions. Sauté, stirring frequently, for about 8-10 minutes until half caramelized (brown).
Add the garlic paste, ginger paste, as well as coriander, turmeric, and chili powders, (Alternately, you can mix the spice powders with the ginger-garlic paste and a little water before adding them to the pot). Stir for about a minute until fragrant, stirring and scraping the bottom, so it doesn't stick and burn. If it is sticking, just pour in a little hot water.
Add the lamb stew meat, 2 tablespoons of cilantro, and garlic salt (or salt). Cook on medium-high heat for 10 minutes, stirring occasionally. Turn the heat to medium-low, cover, and let it cook in its own juice for another 5 minutes.
Uncover and cook until the moisture evaporates and the oil starts to surface on the sides. Be sure to continue to stir occasionally so that the masala does not stick to the pot and burn.
Now add the tomato paste and about a quarter cup of hot water. Let it cook, stirring frequently, for another 4 minutes.
Pour the rest of the hot water and let it simmer until the meat is tender, about 25 minutes.
If you like to add potatoes to your curry, you can add them at this point. You can add a little more hot water if you like a thinner gravy, but do not let it get too liquidy!
Pour into a serving dish and garnish with the remaining cilantro.
Lamb Curry pairs well with rice, rice pilaf, naans, or rotis (tortillas).