Heat oil in a large saucepan over medium heat. Saute onion and garlic in the hot oil until golden, 12 to 15 minutes. Add squash, cauliflower, and apple; stir together. Pour in vegetable stock, garam masala, and red pepper flakes. Bring to a boil, reduce heat to low, and let simmer until vegetables are soft, about 30 minutes.
Puree mixture using an immersion blender or food mill until soup is creamy. Season with salt and pepper. Swirl in sour cream.