1. In a large saucepan, heat 2 tablespoons of the oil over moderately low heat. Add the onion and cook, stirring occasionally, until translucent, about 5 minutes. Stir in the garlic, tomatoes, salt, and pepper. Simmer for 5 minutes. Add the spinach and simmer until the spinach wilts and the sauce thickens, about 5 minutes longer. Cover to keep warm.
2. Top 4 slices of the bread with mozzarella. Spoon some of the spinach mixture over each, spreading the spinach to the edges of the bread. Sprinkle the goat cheese over the spinach and top with the remaining bread slices.
3. In a large nonstick frying pan, heat 1 tablespoon of the oil over moderate heat. Cook two of the sandwiches, turning once, until the cheese melts and the bread is golden, about 4 minutes in all. Repeat with the remaining 1 tablespoon of oil and the other two sandwiches, keeping the first batch of sandwiches warm on a baking sheet in a 200° oven.
Wine Recommendation: Here's another opportunity to try an unusual wine: Saumur-Champigny, a vibrant, fruity red from the Loire Valley of France. Made from cabernet franc, it has a wonderful strawberry aroma and enough tannin to stand up to the cheese.
Notes: If you like, use one ten-ounce package of defrosted frozen chopped spinach instead of the fresh. Drain it and squeeze out any remaining moisture. Simmer the spinach in the tomato sauce just to warm it through.