Melt butter or oil over medium-low heat in a large soup pot. Add onion, and cook till it's very soft for 10-15 min. Add minced garlic, and cook for 1-2 more min.
Add peeled and diced sweet potato peeled, spices and salt. Stir well, then cover and cook 8-10 min.
Uncover, add tomatoes and stock, bring to boil and reduce heat to simmer. Cook until potatoes are totally soft, another 8-10 minutes.
Add basil leaves and purée, adding additional cream or coconut milk for a richer texture.