Place the ingredients for the spice paste in a blender and using just as much water as is necessary, process to a thick, smooth paste.
Heat oil in a large saucepan.
Add the onions, cilantro if using, ginger and garlic and a pinch of salt. Saute until the onions turn translucent.
Add the garam masala and stir to mix.
Add the spice paste and stir well. Cook, on medium-low heat, stirring frequently to keep the paste from sticking to the bottom. Cook about 10 minutes or until the paste is quite fragrant.
Add the yogurt, potatoes and mushrooms. Mix well. Don't add water at this point even if you think the curry looks dry because the mushrooms will express water, especially if you're using fresh mushrooms. If using dry mushrooms, add ½ to 1 cup of the mushroom stock -- the water remaining after you reconstitute the mushrooms.
Cover and let the korma cook another 10 minutes. Check after five minutes to make sure there is enough liquid in the pot. If necessary, add some water or vegetable stock to thin out the korma to the consistency you like.
Add the coconut milk and warm through before turning off the heat.
Serve hot or warm. The korma tastes even better the next day!