How to Make It
In a medium saucepan, heat 2 tablespoons of the oil. Add the garlic and half of the onion and cook over moderately high heat, stirring, until softened, about 5 minutes. Add the tomatoes, chipotle and adobo sauce and cook over low heat, stirring, until the tomatoes have broken down but are still slightly chunky, about 20 minutes. Stir in the lime juice and cilantro and season with salt and pepper; keep warm.
Meanwhile, in a medium skillet, heat 2 tablespoons of the oil until shimmering. Add the remaining onion and cook over moderately high heat, stirring, until softened, about 5 minutes. Add the ham and cook, stirring, until browned, about 5 minutes. Add the beans and water, season with salt and pepper and cook over moderately low heat, mashing, about 10 minutes.
Preheat the broiler. Spoon the bean mixture into 6 ovenproof shallow bowls and top with 2 folded tortillas. Set the bowls on a sturdy baking sheet.
In a large nonstick skillet, heat 1 tablespoon of the oil. Crack 4 eggs into the skillet and cook over moderate heat until the bottoms are just set, about 2 minutes. Transfer 2 eggs to each bowl. Repeat 2 more times with the remaining oil and eggs.
Sprinkle the queso fresco over the eggs. Broil the eggs 6 inches from the heat for about 1 minute, until the cheese is lightly browned and the egg yolks are just set. Spoon the warm tomato salsa on top and serve with sour cream.