Heat oil in large pot over medium heat. Add onion, lemongrass, ginger, garlic, cardamom, and turmeric. Sauté for 1 minute, until fragrant, ensuring not to burn. Mix in curry paste and lime leaves or zest, cooking for 30 seconds more. Slowly stir in coconut milk, broth, sugar, and lime juice, mixing well to combine. Bring mixture to a boil and add chicken or tofu or chickpeas. Reduce to simmer and cook, partially covered, for 30 minutes. If using chicken, check for doneness at this point; if cooked, transfer to plate and shred before adding back into pot (or serve on the side). Keep soup warm on stovetop until ready to serve. If you prefer a thicker broth, simmer uncovered until reduced to your desired consistency.