Heat olive oil in large soup pot.
Add onion and carrot. Saute until soft and slightly browned, about 10 minutes.
Add garlic and saute about 1 minute more.
Add spinach. Saute for 3 minutes.
Add tomato sauce, tomato paste, beans and broth. Add salt and pepper.
Bring to a boil, reduce heat and simmer for about 30 minutes.
Puree with an immersion blender or let cool and then puree in a regular blender.
If using a regular blender, return soup to pot after it is pureed.
Stir in parmesan cheese. Taste and add additional salt and pepper if needed.
Serve topped with additional parmesan if you'd like!