Melt butter in large soup pot (For the vegan version, simply substitute a plant-based oil for the butter. Walnut would be good, but use whatever you have on hand.). Chop onion and saute in butter (oil) until translucent.
Add spices and stir 'til fragrant.
Pour in tomato puree, water and barley, and simmer over medium heat until barley is tender (about an hour).
Turn off heat, add coconut milk, serve. Garnish with basil leaves and/or cheese if desired.
This soup is GREAT with a grilled cheese sandwich.