In a big saucepan or Dutch oven, set over high heat, add the vegetable oil. When the oil is hot, add the roma tomatoes and sear on first side for about 3 to 5 minutes, flip, using tongs, and sear on the opposite side for an additional 2 minutes. You may need to do this in batches. Remove the tomatoes and set them aside in a bowl or on a cutting board.
Next, add the onion, garlic cloves and guajillo chiles, searing and toasting them for about 2 to 3 minutes. Take a peek at the onion and if it needs more time, leave it for an additional minute or two. Remove the onion and garlic cloves and set them aside. Add the tomatoes back to the pot with the chiles and add 2 cups of water. Cover the pot and cook for about 10 minutes. This will soften the tomatoes quite a bit and soften the chiles too.
To a blender, add the garlic cloves, seared onion and the chipotle in adobo and sauce. You may need to blend this sauce in batches, depending on how big your blender is (I had to do in batches). Add the tomatoes and the broth and the chiles to the blender. Pulse until smooth, making sure to allow a bit of steam out of the blender.
Pour it back to the pot and add a teaspoon of salt. Bring to a gentle simmer, over medium-low heat and cover the pot. Cook for an additional 10 minutes. Just until the flavors can marry all together. Give it a taste and add salt to taste. I added an additional teaspoon or two.
This recipe makes a big batch of sauce. See below for other ideas to eat it with. It stays good in the fridge for up to a week and a half, if kept in an airtight container. It freezes well too so definitely think about doing that!