1. Warm oil in a large pot over medium-high heat. Add onion, celery and carrots. Cook, stirring frequently, until vegetables have softened, about 5 minutes. Stir in tomato paste and beans. Pour in broth, season with salt and pepper, increase heat to high and bring to a boil. Reduce heat to medium and simmer, stirring often, until vegetables are tender, about 10 minutes.
2. Remove soup from heat and allow to cool slightly. Working in batches, carefully puree soup in a blender until thick but still a bit chunky. Return soup to pot and bring to a simmer over medium heat. Season with salt and pepper. If soup is too thick, thin with additional broth. Serve hot, topped with pesto and croutons, if desired.