Place the beans in a colander and rinse well under cold water.
Heat large pot over medium-high heat, and add your oil. Once the oil is hot, add in the onions, and cook for 5 to 7 minutes until they are soft and slightly browned. Add the garlic and cook for 1 to 2 minutes, stirring constantly so the garlic doesn't burn.
Add in the thyme, butter beans, and broth. Stir to combine.
Increase heat to high and bring broth to a boil, stirring often. Once boiling, reduce heat to medium-low, cover, and simmer for one hour, stirring occasionally. Add water as needed to keep the beans covered. (I check on the pot about every 20 to 30 minutes.)
Using a potato masher crush the beans into the soup liquid.
Turn heat to medium. Add butter, one chunk at a time. Stir beans until butter melts and then add the next chunk, continue until all butter is incorporated.
Add cheese and 1/2 of the lemon zest, stir into soup. Season with salt and pepper.
Portion soup into 2 bowls, garnish each bowl with half the remaining lemon zest, a sprig of thyme, and croutons if desired.
If you prefer a smooth soup (AKA no chunks), use an immersion blender to puree the beans into the soup liquid while they are in the pot. Or puree the soup in a standard blender. Do not fill the blender more than halfway full, and work in batches. Then return the pureed soup to the pot and continue as directed