For the salsa:
- 4 roma tomatoes, or 2 large tomatoes
- 1/2 medium white onion
- 1 serrano pepper
- 1 clove garlic
- 1/4 cup water, plus more as needed
- 2 teaspoons salt, plus more as needed
- 1 teaspoon freshly ground black pepper
- 3 tablespoons vegetable oil
For the tostadas:
- 1/4 cup vegetable oil
- 4 (6-inch) corn tortillas
- 4 large eggs
- 1 cup refried beans (canned or homemade)
- Fresh cilantro sprigs, for garnish (optional)
Blend the salsa. Prepare the following, placing them in a blender or food processor fitted with the blade attachment: Coarsely chop 4 roma tomatoes or 2 large tomatoes, 1/2 medium white onion, and 1 serrano pepper (remove the seeds and membranes first for a less spicy salsa). Add 1 garlic clove, 1/4 cup water, 2 teaspoons kosher salt, and 1 teaspoon black pepper. Pulse until chunky and coarsely chopped, adding more water if needed to thin. Taste and season with more kosher salt as needed.
Cook the salsa. Heat 3 tablespoons vegetable oil in a small saucepan over medium-high heat until shimmering. Add the salsa and fry, stirring occasionally, for 3 minutes. Reduce the heat and simmer, stirring occasionally, until the sauce darkens, about 5 minutes. Reduce the heat to low and keep warm until ready to assemble.
Fry the tortillas. Heat 1/4 cup vegetable oil in a large nonstick skillet over medium-high heat until shimmering. Lightly fry 4 corn tortillas: add 2 tortillas and fry until lightly brown and crisp but still pliable, 1 to 2 minutes per side. Transfer to a paper-towel lined plate and repeat with the remaining 2 tortillas. Remove any bits of fried tortillas from the pan with a slotted spoon.
Fry the eggs. Reduce the heat to medium. Carefully crack 4 large eggs into the pan and season with kosher salt. Fry until desired doneness, 2 to 4 minutes for runny yolks.
Assemble the huevos rancheros. Spread the warm refried beans onto the tostadas. Place 2 tostadas on each plate, then top each tostada with a fried egg. Spoon the warm salsa over the eggs and garnish with cilantro if desired.