Combine the red lentils in a saucepan with 4 cups water. Bring to a slow boil, then turn down the heat and simmer gently until mushy, about 20 minutes.
Meanwhile, heat the oil in a soup pot. Add the onions and sauté over medium heat until translucent. Add the garlic and continue to sauté until both are golden.
Add the cauliflower florets, seasoning blend, curry powder, ginger, and just enough water to cover. Bring to a slow boil, then cover and simmer gently until the cauliflower is just tender, about 8 minutes.
Stir in the butternut squash or pumpkin puree, cooked lentils, and just enough coconut milk (or other nondairy milk) to give the soup a medium-thick consistency.
Return to a simmer, then simmer gently for 10 minutes longer, or until the flavors are blended and the cauliflower is completely tender but not overcooked.
Season with salt and pepper. At this point, if you’d like, you can set the soup aside off the heat (covered). Or you can serve right away. Either way, just before serving, heat the soup until piping hot and adjust consistency and seasonings.
Stir in the spinach at the last minute and cook just until it’s wilted. Stir in the cilantro and serve.