Add oil to a large, heavy-bottomed pot over medium heat. Add onions and sauté for 5 minutes. Add in ginger and garlic and cook for 2-3 minutes.
Add in the butternut squash, red curry paste, curry powder, cumin, salt, and sugar. Stir well and cook squash for 6-7 minutes, stirring often to prevent burning.
Add in coconut milk, diced tomatoes, vegetable broth, and lime juice. Bring to a boil, stir well, and then cover and reduce heat to low. Simmer for 30 minutes, stirring several times.
Stir in spinach and fresh cilantro. Cover and cook for an additional 5 minutes.