Peel your butternut squash using a sharp vegetable peeler. Cut it in half lengthwise, scoop out the seeds, and then cut into 1-inch cubes. Pro tip: Microwave the whole squash for 2-3 minutes before peeling to soften the skin.
Heat oil in a large, deep skillet or Dutch oven over medium heat. Add diced onion and cook for 4-5 minutes until translucent.
Add minced garlic and grated ginger, cooking for another 30 seconds until fragrant.
Add curry powder, cumin, coriander, and cayenne (if using) to the aromatics. Stir constantly for 1-2 minutes to bloom the spices.
Add the cubed butternut squash to the spice mixture, stirring to coat evenly. Cook for 3-4 minutes, allowing the squash to slightly caramelize on the edges.
Pour in the coconut milk and vegetable broth, stirring to combine. Bring the mixture to a gentle boil, then reduce heat to low. Cover and simmer for 15-20 minutes, or until the butternut squash is fork-tender but not mushy.
Add the chopped red bell pepper and continue cooking for another 5 minutes.
Stir in the fresh spinach and cook just until wilted, about 1-2 minutes.
Season with salt and black pepper to taste. If the curry is too thick, add a splash more broth; if too thin, simmer uncovered for a few more minutes to reduce.
Serve hot, garnished with fresh cilantro and lime wedges on the side.