Pre-heat broiler.
Roast the tomatoes on a baking sheet under the broiler until blackened in spots, about 7 - 10 minutes. (Keep an eye on them, don't let them get too burnt).
Turn them over and continue to blacken, about another 7 - 10 minutes. (Keep an eye on them!).
Remove from the broiler and set aside to cool at room temp. Once they are cool enough to handle, peel the tomatoes and discard the skins.
Remove the stems from the guajillo and chipotle chiles and tear them open. Shake out and discard the seeds. Remove and discard the veins.
Set a large cast-iron skillet over medium heat for 5 minutes.
Add the oregano and cumin seeds and toast briefly, shaking the pan, until fragrant, about 15 seconds.
Remove from the heat, transfer to a spice grinder, and grind to a fine powder.
Reheat the skillet over medium heat.
Toast the guajillo and chipotle chiles, turning them from time to time until you see the first wisp of smoke, about 45 seconds.
Remove pan from heat, and transfer the chiles to a bowl. Cover them with hot tap water and place a heavy plate over the chiles to keep them submerged. Set aside to soak for 30 minutes.
Add the garlic cloves to the skillet and roast, turning them from time to time until softened and slightly blackened in spots, about 6 minutes.
Turn off the heat, remove the garlic from the skillet, and set aside to cool at room temperature. Once they are cool enough to handle, peel the garlic cloves and discard the skin.
Drain the soaked chiles and discard the liquid.
Place them in a blender along with the tomatoes, ground spices, roasted garlic, salt, sugar, vinegar, and 1/4 cup water. Puree on high speed until completely smooth.
Set up a medium-mesh sieve over a bowl and pass the puree through the strainer.
Transfer to a container and refrigerate until ready to use.