Melt the butter in a large saucepan over medium-high heat. Stir in onions, and cook until golden brown, 5 to 7 minutes. Season with cardamom, turmeric, ginger, pepper flakes, cinnamon, cayenne; cook until fragrant, about 1 minute.
Pour in chicken broth and water; add sweet potatoes and carrots. Bring to a boil over high heat, then reduce heat to medium-low, cover, and simmer until the vegetables are tender, 25 to 30 minutes. Remove from heat, and puree in batches until smooth.