In a large saucepan, melt butter over medium heat and cook onion, garlic, chili powder, cumin and cinnamon, if using, for 5 minutes or until softened.
Sprinkle with flour and cook stirring for 1 minute.
Add broth and stir until smooth.
Add sweet potatoes and tomatoes; bring to boil.
Reduce heat, cover and simmer, stirring occasionally for 20 minutes or until almost tender.
Add beans, pepper and cream; simmer uncovered for about 10 minutes or until potatoes are tender and slightly thickened.
Add salt and pepper to taste.