[Squeeze of lime juice (optional)]
Pick dirt, pebbles from beans. Rinse the beans, then combine them with the water and garlic in a heavy soup pot. You might think putting a whole head of unpeeled garlic in the pot is strange, but just go with it. Bring the beans to an active simmer and cook for 30 to 40 minutes, until just a touch al dente and not mushy or falling apart. Test their doneness by tasting; you really can't tell any other way.
Heat the olive oil (or butter) in a heavy skillet over medium-high heat, add the onion, chipotles, and 2 teaspoons of the adobo sauce, and sauté over medium high heat for 3 to 4 minutes, just until the onion starts to soften. You can always add more adobo sauce later for a spicier soup; just don't overdo it on the front end.
Add the salt and the onion-chipotle mix to the pot of beans and simmer gently for about 5 minutes to blend the flavors. The broth should be thin, so add more water if needed. Add more salt and more adobo a bit at a time if the flavors aren't popping. Finish with a squeeze of lime if you like. I usually remove the garlic head at this point or serve around it.