Heat oil in a large pot over medium heat. Once hot, add the onion and cook, stirring occasionally, until softened — about 5 minutes. Add the garlic, ginger, cumin, coriander, cayenne, and allspice (optional), and cook, stirring frequently, until fragrant, 1-2 minutes.
Add the tomatoes, pumpkin, coconut milk, broth (or water), salt, and pepper and stir well to combine. Bring to a simmer, cover, reduce heat to low, and simmer for ~20 minutes to develop the flavors. Taste and adjust as needed, adding more salt for overall flavor, allspice for warmth, or cayenne for heat (we added the full amount, but how much you add will depend on personal preference and the spiciness of your cayenne). Keep in mind the flavor will intensify the longer you cook it and after storing overnight.
At this point, you can either enjoy it a little chunky, purée with an immersion blender for a mostly smooth texture, or transfer to a heat-safe blender and blend until fully smooth and creamy. All three options are delicious, but if using diced tomatoes (rather than crushed), we recommend blending for a more cohesive/balanced tomato flavor!
Divide between serving bowls and garnish with fresh cilantro and toasted cashews (both optional). It’s delicious served with naan or grilled cheese sandwiches.
Leftover soup keeps well stored in a sealed container in the refrigerator for 3-4 days or in the freezer for 1 month (or longer).