- Pick over the beans to remove any debris. Soak if desired and drain.
- In a deep, heavy-based pot, heat oil over medium heat.
- Add onions and cook until translucent, about 5 minutes.
- Add beans, garlic and water.
- Bring to a boil, skimming any foam that rises to the surface.
- Reduce to a simmer and when the beans are soft, after about 1 hour, add tomato, epazote, chipotle chile, cumin, coriander and salt.
- Cook until the beans start to break down and broth begins to thicken.
- Taste for seasoning; add salt and pepper if needed.
- In a small bowl, combine tomato, tomatillo, onion, jalapeño and cilantro.
- Taste for seasoning and add salt as needed.
- Ladle soup into individual serving bowls.
- Garnish each with a spoonful of crème fraîche and salsa.
Notes, tips, and variations
- If you're serving this soup immediately, you can thicken it by pureeing a cup or two of the beans in a blender or food processor and then recombining them with the rest of the soup. If refrigerated overnight, the soup will thicken on its own.
- The salsa will taste best if assembled no more than an hour before serving.
- Epazote is an herb that looks like a weed and is regularly used in Mexican cooking. If you can't find it, use an equal amount of cilantro.
- Tomatillos look like rock hard tomatoes with papery skin. Look for them canned in the Hispanic section of your market, if you can't find fresh. They will be perfectly acceptable.
- Crème fraîche is similar to sour cream, but richer. Look for it in the fancy cheese section.