Heat oil in pot over medium heat.
When oil is hot, but before it begins to smoke, add onion, garlic, chili, ginger, lemongrass, and curry paste.
Cook 5 minutes.
Add chicken broth.
Simmer 30 minutes, uncovered.
Strain out aromatics.
Return liquid to pot. Add coconut milk; chicken, shrimp, or tofu; and mushrooms.
If using chicken or shrimp, simmer until chicken or shrimp is cooked. If using mushrooms, simmer approx. 5 minutes.
Add fish sauce, lime juice, and sugar.
Simmer for 5 more minutes.
Remove from heat.
Garnish with green onions and cilantro.