Melt the butter in a 4-quart pot over medium heat and add the carrots, onions, garlic, and potatoes. Cook for about 10 minutes, stirring every few minutes, until the onions start to turn translucent.
Add the broth and bring the soup to a medium simmer. When the vegetables are soft and can be crushed easily against the side of the pot with a spoon, about 20 minutes, add the spinach leaves and simmer for 2 minutes more.
While the vegetables are cooking, use the almonds and water to make almond milk.
Puree the soup in a blender or through the fine disk of a food mill. If you want the soup to have a smoother texture, strain it through a medium-mesh strainer. Add the almond milk and the saffron with its soaking liquid.
Combine the ghee and curry in a small sauté pan. Stir over medium heat for about 2 minutes, until you can smell the curry. Add this mixture to the soup.
Stir in the cream or coconut milk and the cilantro. Season with salt and pepper. Bring the soup to a simmer and serve.