Set your oven to broil. Slice the poblano peppers in half lengthwise and place them on a lightly oiled baking sheet, skin sides up.
Broil the poblanos about 15 minutes, until the skins char and blacken. They should puff up.
Remove, cool slightly, then peel off the skins and discard them along with the seeds and stems.
Rough chop the poblanos and set them aside.
While the poblanos are roasting, heat a large pot to medium heat and add the olive oil.
Add the onion, carrot and celery and cook them down about 5 minutes to soften.
Add the chopped roasted poblano peppers, garlic, spinach, seasonings and salt and pepper. Cook another minute, stirring.
Add the chicken stock and milk and bring to a quick boil. Reduce the heat and simmer about 30 minutes to let the flavors develop.
Remove from heat and stir in the crema or sour cream until it is completely incorporated.
Use a stick blender to blend the soup into a thin consistency, or transfer it to a food processor or blender in batches.
Serve in bowls and garnish with chili oil, chili flakes, pepper slices and fresh chopped parsley.