Make the filling: Drain the ricotta in a fine sieve set over a bowl for 1 hour (or longer if the ricotta is very wet). If using fresh spinach, stem and rinse it well (don't dry the leaves). In a 12 inch skillet over medium high heat, cook the spinach until wilted (3 to 5 minutes). Drain well and squeee out excess moisture and chop finely. If using thawed frozen spinach, squeeze it dry.
Melt the butter in a 10 inch or 12 inch skillet over medim-low heat and add the onion. Cook until the onion is soft and translucent, 5 to 8 minutes. Add the garlic and cook for about 1 minute. Add the spinach and toss it for 1 to 2 minutes to coat it with the butter. Transfer the spinach mixture to a bowl and let it cool to room temperature. Add the ricotta, Parmigiano, eggs, salt, pepper, and nutmeg. Mix well. You should have about 4 1/2 cups.
Cook the noodles: If using dried lasagna noodles instead of fresh use 1 lb and skip these cooking instructions--cook according to package instructions. If cooking fresh: Bring a large pot of salted water to a boil. Prepare a large bowl of ice water. Slip the noodles, 2 or 3 at a time, into the boiling water and cook them until they're tender and pale (3 to 5 minutes). Thinner noodles will cook more frequently. To make sure they're done, taste a small piece. If it's still tough, it needs a little more cooking (fresh pasta should not be cooked al dente like dried pasta). Carefully scoop the noodles out of the pot with a large wire skimmer and slide them into the ice water to stop the cooking. When they're cool, layer them between clean dish towels until you're ready to assemble the lasagna (the noodles will keep this way for up to 2 hours).
Make the Quick Tomato Sauce: In a 3 or 4 quart saucepan, heat the olive oil over medium heat. Add the carrot, celery, onion, parsley, basil, a generous pinch of salt, and a couple grinds of pepper. Cook until the vegetables are pale gold (10 to 12 minutes). Add the wine and cook until it evaporates, about 5 minutes. Add the tomatoes with their juices, stir well, and simmer gently to blend the flavors and reduce the sauce to about 4 1/2 cups, 15 to 20 minutes (adjust the heat as necessary to maintain a gentle simmer). Season to taste with salt and pepper. If you want a smoother texture, pass the sauce through a food mill or puree in a food processor.
Make the Basic Cream Sauce: In a 2-quart saucepan, melt the butter over medium-low heat. Add the flour and cook, whisking constantly for 2 to 3 minutes. Do not let the mixture brown. Slowly whisk in the hot milk and bring just to a simmer, whisking frequently. Reduce the heat to low and cook, whisking often, until the sauce has thickened to a creamy, gravy-like consistency and no longer tastes of raw flour, 6 to 8 minutes for a single batch, 10 to 12 minutes for a double batch (you only need 1 batch for this recipe). Remove from the heat and whisk in the salt, pepper, and nutmeg. If you don't use this sauce within 30 minutes it will thicken. Add a little warm milk and whisk to the sauce to thin it if necessary.
Assemble the lasagna: Position a rack in the center of the oven and heat the oven to 350. Choose a 9x12x3 inch baking dish or 10x14x2 inch baking dish. Spread 1/2 cup of the tomato sauce in a sparse layer on the bottom of the baking dish. Cover the sauce with a slightly overlapping layer of cooked noodles, cutting them as needed to fill the gaps. With a spatula, spread one third of the spinach and ricotta filling (about 1 1/2 cups) over the first layer of noodles. Then spread one third of the remaining tomato sauce (about 1 1/3 cups) and one third (1/2 cup) of the cream sauce over the filling. Sprinkle 1/3 cup of the Parmigiano on top. Add a new layer of noodles, overlapping them slightly, and repeat the layers as instructed above, using all of the filling and ending with the Parmigiano, to make a total of 3 layers (you may not need all the pasta). Dot the top with the butter cubes.
Put the baking dish on a baking sheet and bake until heated through and bubbling at the edges, 45 to 50 minutes. Remove from the oven and let rest for 10 to 15 minutes before serving.