Heat oil in a large saucepan. Add onion and cook until lightly browned. Add garlic, ginger, curry powder, and garam masala. Reduce heat to low and sauté the spices for about a minute until fragrant.
Add the squash, coconut milk, and water/broth. Over medium heat, bring it to a boil, stirring occasionally.
Then adjust heat to low, cover partially and let simmer for about 30-45 minutes until squash is just tender. Use a fork to check for tenderness.
The curry will thicken as it cooks down. Season with salt. Add more water/broth if needed.
When ready to serve, stir in spinach and cook until the spinach just begins to wilt. Turn fire off. Squeeze in lemon juice and garnish with fresh cilantro.
Serve with brown rice, basmati rice, naan, or chapati bread. Top with toasted pecans or almond flakes. Feel free to add a dollop of Greek yogurt on the side.