Prepare the Base: In a food processor, combine onions, garlic, and ginger with 250ml of water. Blend until smooth. Transfer to a large pot.
Cook the Base: Simmer the mixture on low heat for 15 minutes with the lid on. Remove the lid, add a tablespoon of vegetable oil, and increase the heat to medium-high. Cook until it turns a deep golden brown.
Brown the Lamb: Add lamb to the pot, stirring well to coat with the onion mixture. Cook until the lamb starts to color (about 8-10 minutes).
Add Spices and Liquids: Add tinned tomatoes, chicken stock, cinnamon, curry powder, cumin, and turmeric. Bring to a boil, then reduce to a simmer. Cover and cook for 45 minutes, stirring occasionally.
Final Touches: Stir in coconut milk and soy sauce once the lamb is tender. Bring it back to a simmer. Turn off the heat, add spinach, cover, and let sit for 5 minutes to wilt the spinach. Top with the fresh chopped coriander and serve over rice with naan bread.