Finely chop the onion and garlic. Peel and dice the carrot, sweet potatoes and butternut squash.
Heat the olive oil in a large saucepan and sauté the onion for about 5 minutes, until softened.
Add the garlic, squash, carrot and sweet potatoes, followed by the oregano, cinnamon, cayenne and cumin. Stir for a minute to coat the vegetables in the spices.
Add the chopped tomatoes, passata and vegetable stock. Bring to the boil, then reduce the heat and simmer for about 20 minutes, or until all the vegetables are tender.
Blend the soup with a hand-held blender until smooth and creamy. Add a little more stock if it is too thick, then season to taste.
If using beans or chickpeas, stir them into the blended soup and heat through gently.
Serve warm with flatbread or toast.