Put the beans in a large pot and add enough water to cover them by at least 2 inches. Add a large pinch of salt. Bring the water to a boil and boil hard for 2 minutes. Turn off the heat, cover the pot and let the beans soak for at least an hour, and up to 4 hours.
Drain the beans and return them to the pot. Add the chicken stock or water, garlic, herbs and a couple pinches of salt. Bring the beans to a boil over high heat. Lower the heat, cover, and simmer for 30 minutes. Add the tomatoes and simmer gently, uncovered, until the beans are tender (30 to 60 minutes more), stirring occasionally. If the soup seems too thick at any point, just add a little water.
Season to taste with salt and pepper. Remove the herb sprigs and stir in the olive oil and some grated parmesan just before serving.