½pounddried white beansrinsed well and drained (see Tip)
3large tomatoespreferably Roma
1large red onionthinly sliced
Place the beans in a large pot and add enough cold water to cover them by 1 inch. Set the pot over high heat and bring to a boil, then turn the heat as low as it can go and partly cover the pot so steam can escape. Simmer the beans, stirring them every so often, until they’re tender, anywhere from 1 to 2 hours, depending on whether they’ve been soaked and how old they are. Make sure the beans are covered with water at all times, adding more hot water to the pot as needed if too much evaporates.
Meanwhile, slice off and discard the tops of the tomatoes, and squeeze out and discard the seeds. Thinly slice the tomatoes and set them aside.
Once the beans are done cooking, season them to taste with salt. Reserve 1 cup of the cooking liquid, then drain the beans. (Discard the remaining liquid or reserve for another use, such as adding to a soup.)
Place the oil in a large Dutch oven or other heavy pot and set over medium-high heat. Add the onion and cook, stirring occasionally, until the onion sizzles and starts to take on a little color at the edges, 2 to 4 minutes. Stir in the sliced tomatoes, cover and cook until the tomatoes begin to break down, about 2 minutes. Stir in the beans with the 1 cup reserved cooking liquid. Cover the pot and bring the mixture to a boil. Uncover and allow the beans to boil until the mixture has thickened significantly but remains soupy, 5 to 10 minutes.
Season the beans to taste with salt one final time and serve hot. Leftovers can be stored in an airtight container in the refrigerator for up to a few days. You can rewarm any remaining soup in a pot set over low heat, stirring occasionally while you heat and adding water if needed.
If possible, soak your beans overnight (covered with cold water by 2 inches) before cooking them to help them cook more evenly and to reduce their cooking time. If you don’t soak them, no worries; it might just take a little longer to cook them.