Heat a cast iron skillet or comal over medium-high heat. Place whole tomatoes, quartered onion, unpeeled garlic cloves, and whole peppers directly in the dry pan.
4-5 whole Roma tomatoes, 0.5 whole white onion, 2-3 cloves garlic, 2-3 whole serrano peppers
Roast for 10-12 minutes, turning occasionally with tongs, until tomatoes are blistered and soft, peppers have black spots, and onion edges caramelize. Remove garlic after 8 minutes when it softens.
4-5 whole Roma tomatoes, 0.5 whole white onion, 2-3 cloves garlic, 2-3 whole serrano peppers
Remove roasted ingredients from heat and let cool for 5 minutes. Peel the garlic cloves by squeezing out the soft insides. Remove stems from the peppers and scrape out seeds and membranes to reduce heat if desired.
2-3 cloves garlic, 2-3 whole serrano peppers
Add roasted tomatoes, peppers, onion, and garlic to a blender. Pulse 6-8 times for chunky salsa, or blend continuously for 20 seconds for smooth texture. Scrape down the sides halfway through blending.
4-5 whole Roma tomatoes, 0.5 whole white onion, 2-3 cloves garlic, 2-3 whole serrano peppers
Pour salsa into a bowl and stir in salt, lime juice, cilantro, and vegetable oil if using. Adjust seasoning as needed and add 1-2 tablespoons of water if salsa is too thick.
0.25 tsp ground cumin, 0.5 tsp salt, 1 whole lime, 0.25 cup fresh cilantro, 1-2 tbsp vegetable oil
Cover and refrigerate for 30 minutes before serving to let flavors meld. Stir once more before serving to redistribute any separated liquid.