Stem and core tomatoes and stem, de-vein, and de-seed the chiles (don't worry if you can't get all the seeds out of the chipotle. A few won't hurt, and some will come out in the water).
Preheat broiler to high, then roast the tomatoes until blackened on all sides.
Lightly toast the guajillo chiles on a comal or in a pan.
Meanwhile, bring a small pot of water to a boil, then reduce to a simmer and add the chiles. Let sit covered for 15 minutes. Drain.
Add tomatoes, chiles, salt, garlic, and white onion to a blender and blend until smooth.
Heat the oil in a skillet over medium-high and add the puree (a splatter screen will be helpful here). Fry for 5 minutes, stirring often. Remove from heat and set aside.