Griddle-roast and peel the tomatoes, being sure to save all the juices. Set aside.
Heat a small heavy skillet over very low heat. Add the chiles and toast for about 5 minutes, stirring often. When ready, they will sound hollow and should be brittle but not burned. Immediately pour the chiles into a blender and add the tomatoes and their juices with the onion, garlic, and stock base, bouillon cube, or salt. Process until smooth, occasionally stopping to scrape down the sides with a rubber spatula.
In a medium saucepan, heat the oil over medium-high heat until rippling. Add the tomato mixture and epazote or cilantro. Reduce the heat to maintain a simmer, cover, and cook, stirring occasionally, until craters are bubbling up on the surface and the fat starts to separate, about 15 minutes. Serve hot.