Boil tomatoes in plenty of water until soft (about 10 minutes).
Turn off the heat, add guajillo chiles and push them down to immerse them well into the hot water. Leave to rest for 15 minutes.
Add tomatoes and guajillo chilies into a blender or food processor.
Add chipotle chilies, onion, garlic, peppercorns, and 1 cup of water.
Blend for 1 minute or until you'll have a smooth sauce.
Strain the sauce through a fine sieve into a bowl and set aside.
Heat the olive oil in a stockpot over medium heat.
Add carrots, zucchini, potatoes, and leek. Sauté for 3 minutes.
Pour in the tomato sauce and season with salt.
Add shrimp bouillon and oregano. Mix well and cook for 5 minutes.
Pour into the pot 6 cups of water, mix, and bring to a boil.
Important:if you are adding fish heads and tails to the soup, this is the time to add them as they can start releasing their flavor right away, otherwise, keep cooking the vegetables for 10 more minutes before the next step.
Add the fish chunks to the pot, bring to boil over high heat, then reduce the heat to medium-low and simmer from 5 to 7 minutes or until fish and vegetables are cooked through.
Adjust salt to taste, turn off the heat and serve.
Notes
Mexican fish soup calls for firm white fish, such as cod or halibut. Snapper, tilapia, and catfish are also good options.