Turn oven to 375° Fahrenheit. Cover a rimmed baking sheet with foil for easy cleanup, if desired.
Prepare the first 4 ingredients as directed: wash tomatoes, remove onion skins and cut into quarters, remove caps and seeds from Serrano peppers (see note below about burning), and peel the garlic cloves.
Set the tomatoes, onions, peppers, and garlic on the baking sheet and bake until fragrant, about 1 hour. One sign that roasting is complete is the onions will be translucent and they will char nicely on the tips.
During roasting, wash cilantro and cut off lower portion of stems. Discard stems. See notes below.
When roasting is complete, remove the baking sheet from oven. Using a large spoon, transfer the roasted vegetables into a large food processor, leaving room for the cilantro. (Smaller batches may be necessary for small food processors. If you don’t have a food processor, do the best you can with a blender or potato masher.)
Add the cilantro on top of the roasted vegetables. Add about 1/2 of a tablespoon of salt. Blend all ingredients together until desired consistency is achieved.
Using a tortilla chip, taste the salsa. If it is lacking in flavor, add more salt and taste again. I usually need about 1 Tablespoon. You’ll know when you have added the right amount of salt because it will taste amazing. But go slowly about it. You can’t really remove salt once it’s blended in. I recommend tasting with a tortilla chip because the saltiness of the chips should be considered when adjusting the salsa for the right amount of saltiness overall.
Salsa leftovers should stay fresh in the fridge for 3-5 days. Or you may freeze the salsa in small portions in a freezer-safe container or zipper bag for up to one year. Generally the texture of tomatoes isn’t great after freezing, but because this salsa is run through the food processor, the texture really isn’t adversely affected after freezing.