Heat a pot over medium-high heat. Add the coconut oil, and then add the onions. Cook the onions for about 2 minutes, until they start to soften. Add the garlic and ginger and cook another minute.
Add the curry powder, coriander, and red pepper flakes, and stir to coat the onions with the spices. Add the diced butternut squash, crushed tomatoes, coconut milk, water, and salt. Cover the pot and bring everything to a boil.
Reduce the heat to medium and let the squash simmer for 15 minutes. Remember to stir the pot every 5 minutes or so to prevent the curry from burning on the bottom. After 15 minutes, pierce a piece of butternut squash with a fork to see if the squash is tender. If the squash is still very firm, keep cooking the curry for another 3 to 5 minutes.
Turn off the heat. Add the baby spinach and stir the curry until the spinach starts to wilt. The spinach should start wilting in about a minute.
Serve the curry in bowls with a side of brown rice or your favorite grain. Top with chopped peanuts, if desired.