Creamy Curried Sweet Potato Soup

Heat the oil in a pot large enough to hold all the ingredients. Add the onion and sauté over medium heat until it begins to brown, about 10 minutes. Add the garlic and sauté, stirring for 30 seconds. Add the ginger, cumin, coriander, cardamom, turmeric, and red pepper flakes, if using, and stir well. Add the sweet potatoes and broth and bring to a boil. Reduce the heat and simmer until the sweet potatoes are soft, about 20 minutes.
Puree the soup in batches in a blender or food processor. Season to taste with salt and pepper. (The soup can be made ahead to time and refrigerated. Reheat slowly to serve.) If the soup is too thick, add a little more stock.
Ladle into mugs, top each serving with a teaspoon of cheese, and stir to melt a little.