In a large soup pot, melt the butter over medium-high heat. Add the onion, carrots, and garlic and cook until the vegetables are tender, about 4 minutes. Add the beans, tomatoes, broth, bay leaf, 1 teaspoon rosemary, and red pepper flakes. Bring the soup to a boil over high heat, then reduce the heat to low and simmer for 30 minutes, covered.
Puree the soup in a blender in batches, being careful to remove and discard the bay leaf. Return the soup to a soup pot and keep warm over low heat. Season with salt and pepper.
In a medium bowl fold in the lemon zest and the remaining teaspoon of rosemary to 2/3 cup creme fraiche. To serve, ladle the soup into bowls and dollop each bowl with the lemon rosemary creme fraiche. Serve immediately.