Cook the pasta according to package directions, reserving ½ cup of the pasta water.
Melt the butter in a large skillet over medium heat.
Add the shallots and garlic and saute for 5 minutes.
Add the balsamic vinegar and simmer for 5-10 minutes, or until it has thickened.
Drain the pasta in a colander then return it to the pot with the reserved cooking water.
To the skillet with the balsamic, add the cream, salt, and pepper and cook on low heat for about 10 minutes, whisking frequently until it coats the back of a spoon.
Add the drained pasta, spinach, and tomatoes to the skillet. Stir for a few minutes until the spinach has wilted.