This is a quick and easy adaptation of this recipe from Cooking Light from years ago. It's a family favorite and although it seems pretty involved, after you've made it a couple of times, it goes together really quickly. If I have extra time and ingredients, I will use fresh spinach and basil...but it's a rare night when I have all fresh ingredients at the ready. :)
Preheat oven to 350°. Cook pasta according to package directions. Drain and set aside. Melt 2 tablespoons butter in a medium heavy saucepan over medium-high heat. Add onion and garlic; sauté 5 minutes or until tender. Add flour; cook 30 seconds, stirring constantly. Gradually add milk; cook 4 minutes or until bubbly. Remove from heat. Stir in 1/4 cup cheese, Italian seasoning, and pepper; remove from heat. Combine pasta, cheese sauce, 1 cup cheese, tomatoes, and spinach in a large bowl; stir well. Spoon mixture into a 13 x 9-inch baking dish lightly coated with canola oil. Combine breadcrumbs, 2 tablespoons cheese, and remaining 1 tablespoon butter; sprinkle over pasta mixture. Bake at 350° for 30 minutes or until thoroughly heated.