Make the crispy tortilla strips: in a large pan heat the oil or fat over medium-high heat. Flash fry the tortilla strips until golden brown and crispy, stirring often and watching carefully so they don't burn. You may have to work in batches to not crowd the pan. Adding more oil, as needed. Set aside on a paper towel lined plate.
Chop the garlic and onion into medium size pieces, and sauté in oil in a large pot over medium-high heat until golden brown. Add the guajillo pepper and cook for 5 minutes, or until fried. Next, slice the tomatoes into quarters and sauté them for 15 minutes.
Add in the chicken broth, the remaining herbs and the fried tortilla strips into the pot, leaving a good handful or two or the tortilla strips for serving. Add salt and pepper and bring to a boil, reduce heat slightly and simmer/lightly boil for 25 minutes. Turn off the heat and allow it sit for a short time, to cool slightly and let the flavors come together.
Using an immersion blender or working in batches with a high speed blender, like a Vitamix, puree the soup.
Serve topped with additional tortilla strips, avocado, fresh cilantro, cheese, etc.
Notes
Epazote is a traditional Mexican herb that imparts a very distinct and bold taste that really makes this soup special. Look for it fresh or dried at a local Mexican / Latin Markets, or dried with the spices or in the ethnic food section at your regular grocery store or buy online. If you can't find epazote (and exhausted ALL possibilities), you can replace with a combination of cilantro, oregano and savory. Swap chicken broth for vegetable broth to make vegetarian/vegan.