To make tomato sauce fry garlic with oil in saucepan and then add all other sauce ingredients. Simmer for approximately 20 minutes until slightly thickened and reduced. Add basil leaves once cool. Pour into the bottom of a large baking dish.
Preheat oven to 200°C. Remove stems from spinach and sauté leaves in a saucepan with butter and nutmeg until wilted. Once cool, squeeze excess liquid out of spinach, discard liquid and finely chop spinach.
In a large bowl, mix together the spinach, ricotta, onion, garlic, parmesan and basil. Whisk the eggs, mix into the ricotta mix and season with salt and pepper. Carefully spoon the mix into the cannelloni tubes until filled and place the tubes on top of the tomato sauce in the baking dish. (You may like to pre-cook the cannelloni tubes so they are slightly soft prior to stuffing).
In a small saucepan melt the butter and then add the flour, stirring constantly. Cook for 3-4 minutes then slowly pour in the milk while continuing to stir. Cook over a low heat, stirring until the sauce thickens.
Pour white sauce over the cannelloni and then sprinkle over the parmesan and chunks of mozzarella if desired.
Cover with aluminum foil and bake for 20 minutes. Remove the aluminum foil and continue to bake until top is golden and pasta is cooked, about another 20 minutes.
Serve with crusty garlic bread and a garden salad.