Warm the pot: Heat the oil in a large Dutch oven over medium heat. Add the onion and a pinch of salt.
Cook 4–5 minutes until softened and lightly golden.
Build the base: Stir in the garlic and jalapeño (if using). Cook 30–60 seconds until fragrant, stirring so the garlic doesn’t brown.
Toast the spices: Add cumin, coriander, oregano, smoked paprika, and cayenne. Stir for 30 seconds to bloom the spices.
Cook the chicken: Add the chicken pieces, season with 1 teaspoon salt and 1/2 teaspoon pepper, and cook 3–4 minutes, stirring, until the edges turn opaque.
No need to fully cook through yet.
Add chiles and broth: Stir in the diced green chiles and the drained tomatoes (if using). Pour in the chicken broth and bring to a gentle boil.
Simmer: Reduce heat to medium-low, cover partially, and simmer 15–20 minutes, until the chicken is tender and the flavors have melded.
Make it creamy: Stir in the cream cheese, a few cubes at a time, until fully melted and smooth. Add the heavy cream and simmer uncovered 5 minutes to thicken slightly.
Finish with freshness: Stir in cilantro and lime juice.
Taste and adjust salt, pepper, and heat. If you want it thicker, simmer a few more minutes; for thinner, splash in more broth.
Serve: Ladle into bowls and top with avocado, shredded cheese, sour cream, scallions, and extra cilantro as you like.