In a blender, add the roasted tomatoes, serrano peppers, and garlic. Blend until smooth.
Add the canola oil to a medium skillet over medium high heat. Add the onion and saute until translucent but not browned. Add the blended mixture to the pan and cook, stirring occasionally, until thickened, around 5 minutes. Set aside.
For the Huevos Rancheros
In a large high-sided skillet over medium, medium-high heat, add the canola oil. Once hot, add the onion and saute for about one minute, then add the garlic and stir, spreading the mixture evenly across the pan. In half the pan, add the shredded potatoes, and in the other half, add the black beans. Allow both to cook for about 6-7 minutes, or until the potatoes have browned and crisped, and the black beans are hot, stirring the beans occasionally, and flipping the potatoes once. Season the beans with the dried epazote, and sprinkle salt and pepper over both the beans and potatoes.
Gently push the beans and potatoes in the pan to leave ⅓ of the pan open. Add the eggs to the empty space in the pan, reduce heat to medium, and cover for 3-4 minutes, or until the whites have set, but the yolk is still runny. Increase time by a minute for medium-runny eggs and 2 minutes for hard yolks.
Remove the pan from heat, spoon ranchero sauce over the eggs, then sprinkle everything with cotija cheese. Garnish with avocado, cilantro, and sliced tomatoes, and serve alongside hot flour tortillas. Enjoy immediately.
Roasting tomatoes and peppers is very easy! Just place both on a dry skillet over medium high heat and allow to sit until tender and charred in spots, turning occasionally.