Heat the olive oil in a large soup pot over medium heat. Add the shallot and sauté until softened, about 5 minutes. Stir in the tomato paste, garlic, and crushed red pepper, and cook until fragrant, about 1 minute.
Add the canned tomatoes (with the juices), white beans, vegetable broth, and a heaping ½ teaspoon salt, cover, and simmer over low heat to allow the flavors to meld, about 20 minutes.
Add the basil, parmesan, butter, and balsamic vinegar. Puree the soup with an immersion blender or in batches in a blender or food processor until very smooth. (If using a blender, hold a dish towel over the lid and make sure not to cover tightly to allow air to escape from the top).
Season with additional salt and pepper to taste.
