Add the pistachios to a medium bowl. Fill with water just so that the pistachios are completely submerged. Set aside to soften for about 30 minutes.
In a large soup pot, add the olive oil. Heat over medium heat and then add the onion and scallions. Cook until softened, about 8 minutes. Add the garlic and cook for an additional minute or until fragrant. Add the cauliflower, thyme, and vegetable broth. Season with salt and black pepper. Bring to a boil and then lower the heat to a simmer. Cover and simmer for about 30 minutes.
Meanwhile, add the pistachios (along with the water) to the pitcher of a high-powered blender. Blend until smooth. This may take a minute or so. Add the pistachio mixture to the soup.
Lower the heat to the lowest setting possible. Taking an immersion blender, blend the soup until completely smooth. If you do not have an immersion blender, a regular blender will work just fine. Just work in batches and blend carefully as the soup is hot and can easily build up enough pressure in the pitcher to pop the top off.
Add the milk, cayenne pepper, and more salt and black pepper to taste. Bring to a simmer and cook for another 10 minutes. Lower the heat again to the lowest setting possible and add the cheese. Stir to melt.
Keep the soup warm on the stove until you are ready to serve. Garnish with sour cream, pistachios, and parmesan cheese. Enjoy!