In a 4 quart heavy bottomed pot, add the oil and turn the heat to medium. Once the oil is warm, add the shallots, lemongrass, and galangal, and cook for 2- 3 minutes, until the shallots start to soften. Add the kaffir lime leaves and curry paste and cook for 2 minutes, until the curry paste is fragrant. Add the chicken broth and bring to a simmer for 20 minutes.
Once the chicken broth has reduced by a bit, use a slotted spoon to remove the galangal, lemongrass and kaffir lime leaves. Add the chicken, coconut milk, heavy cream, palm sugar, and fish sauce and bring to a gentle simmer.
After about 20 minutes, the chicken should be cooked through. At this stage, the mushrooms can be added directly to the soup but I actually like to sauté them in a cast iron with a little oil first to brown them, it's entirely up to you! If you're using shrimp, add them in with the mushrooms and simmer for another 4-5 minutes. Season the soup to taste with salt and lime juice (I personally like lots of lime juice).
Ladle the soup into bowls, topped with chopped cilantro and chili oil, if desired.