Heat the olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion, carrots, and celery. Sauté for about 8-10 minutes, until the vegetables begin to soften.
Stir in the minced garlic, dried thyme, dried rosemary, and red pepper flakes (if using). Cook for another minute until fragrant.
Pour in the vegetable broth, add the rinsed Great Northern beans, diced tomatoes, and the bay leaf. Bring the mixture to a simmer.
Reduce the heat to low, cover the pot, and let it simmer gently for at least 30 minutes, allowing the flavors to meld. For an even creamier texture, you can mash some of the beans against the side of the pot with your spoon.
Remove the bay leaf. Stir in the fresh spinach (or kale) and cook until it wilts, about 2-3 minutes. Season generously with salt and freshly ground black pepper to your taste.
Ladle the creamy Great Northern beans into bowls. Garnish with fresh chopped parsley before serving.