4 medium plum tomatoes
2 cloves garlic
1 small white onion
1⁄2 cup canola oil
8 small dried pasilla chiles
8 cups chicken stock
Kosher salt and freshly ground black pepper, to taste
1 cup queso fresco, crumbled
8 sprigs cilantro, finely chopped
1⁄2 cup crema or sour cream
1 avocado, very thinly sliced
Fried tortilla strips, for garnish
Heat a 6-qt. Dutch oven over medium-high heat. Add ancho chiles, and cook, turning once, until lightly toasted, about 5 minutes. Transfer to a bowl, pour over 1 cup boiling water, and let sit until soft, about 30 minutes; drain chiles, reserving soaking liquid, and remove and discard stems and seeds. Transfer chiles to a blender and set aside. Return pot to heat, and add tomatoes, garlic, and onion; cook, turning as needed, until blackened all over, about 10 minutes. Transfer to blender, and puree until smooth, at least 4 minutes. Pour through a fine strainer into a bowl, and set chile puree aside.
Return saucepan to heat and add 1⁄4 cup oil; add pasilla chiles, if using, and fry, turning once, until crisp, about 5 minutes. Transfer to paper towels and let cool. Discard oil and wipe pan clean.
Return pan to medium-high heat, and add remaining oil. When hot, add chile puree, and fry, stirring constantly, until slightly reduced, about 6 minutes. Add stock, and bring to a boil; remove from heat, season with salt and pepper, and keep warm.
Divide cheese and cilantro among serving bowls, and then ladle soup over each. Top each with a dollop of crema, a few slices of avocado, and some tortilla strips; garnish with a fried pasilla chile, if you like.