Bring a large saucepan of salted water to the boil.
Add the spaghetti and cook until just al dente, following the packet instructions.
Before draining, reserve about 240 ml of the cooking water.
Drain the spaghetti and set aside.
Meanwhile, place the spinach, basil, garlic, Parmesan, walnuts, olive oil, cream cheese and milk in a blender or food processor.
Blend until smooth and creamy, scraping down the sides as needed.
Season the green sauce with salt and freshly ground black pepper to taste.
Return the drained spaghetti to the saucepan or transfer to a large serving bowl.
Pour the sauce over the hot spaghetti and toss to coat, adding a little of the reserved pasta water if the sauce is too thick.
Serve immediately, topped with extra Parmesan and basil leaves if you like.