Heat oil in a medium pot over medium heat. Add chiles; saute, being careful not to overtoast chiles, until aromatic and they have changed color slightly, 30 seconds to 1 minute. Using a slotted spoon, transfer chiles to a blender jar; add tomatoes and their juice to blender jar.
Add 2/3 of the onion and all the garlic to the pot. Cook, stirring frequently, over medium heat until golden, about 7 minutes. Transfer remaining onion to a strainer, and rinse under cold water; reserve for garnish. Using the same slotted spoon, transfer onions and garlic to blender; process until smooth.
Set a medium-mesh strainer over pot; using a wooden spoon, press tomato mixture through. Return pot to medium-high heat; cook, stirring frequently, until reduced and thick, about 6 minutes. Add broth, potatoes and epazote, if using; when mixture comes to a boil, reduce heat to medium-low and simmer until potatoes are tender, about 15 minutes. Season with salt.
Just before serving, increase heat to medium-high; add mussels and fish. Boil briskly until shells have opened, about 4 minutes.
To serve, ladle into large bowls. Sprinkle generously with cilantro and reserved onion. Serve immediately with limes.