In the center of a 6-inch sheet of cheesecloth or a cheesecloth spice bag, place cinnamon, cloves, cardamom pods, and black peppercorns. Tie up the bag. Bang it lightly to coarsely crush the spices.
Heat the oil in a soup pot over medium heat. Add onions and potatoes and cook, stirring occasionally, until the onions begin to wilt, about 10 minutes. Stir in the turmeric, broth, and spice bag, and bring to a boil. Reduce heat and simmer, covered, until vegetables are cooked and tender, about 35 minutes. Remove from heat and stir in cilantro leaves. Season with salt.
Once soup has cooled enough to handle, remove spice bag and squeeze out any juices. Discard. Using an immersion blender or food processor, puree the soup. The soup may be refrigerated for up-to 3 days or frozen at this point.
Heat the soup until piping hot. Add coconut or almond milk and cream and continue simmering until the soup is hot. Check for salt, place in soup bowls, and serve piping hot with a little lime juice squeezed over it.