Heat olive oil in a 4qt Dutch oven or soup pot over medium until the surface shimmers.
Add the onions and sauté for 8 minutes, stirring often. If the onions cook too quickly and begin to brown, reduce heat and keep stirring. They should be very soft and on the verge of turning golden, but not burning.
Add the mushrooms and sauté until they release their liquids, 8 to 10 minutes. Cover the pot to help speed things along.
Scoot the onions and mushrooms to one side, and to the cleared side pour in one quick glug of oil and add the tomato paste, smoked paprika and Italian herbs. Stir the paste and herbs together until fragrant, then mix into the onion mixture.
Sprinkle the flour over the mixture and stir. Everything should become very thick. If too thick to stir, add a splash of the broth. Cook for a minute or two to eliminate the rawness of the flour.
Pour in the broth, plus the bouillon, if using. Raise the heat to medium-high and bring the soup to a light boil. Let simmer for 5 minutes.
Add the fresh tortellini, maintaining the soup at a simmer. Let cook according to the package directions (about 5 minutes).
Add the heavy cream, Parmesan, and spinach. Stir until the spinach wilts.
Stir in the balsamic vinegar, and taste the soup broth. Add salt as necessary (you probably won’t need much, if at all, if you used the bouillon).
Season the soup with black pepper before serving, with extra parm on the side.