To make the meatballs, combine meat, garlic, breadcrumbs, Parmesan, eggs, salt, pepper, parsley, and a splash of milk in a mixing bowl. Mix together well with hands. Roll into 25 1 1/2-inch balls and place on a cookie sheet. Place cookie sheet into the freezer for 5 to 10 minutes to firm up.
To brown the meatballs, heat olive oil in a heavy pot or large skillet over medium-high heat. Add meatballs 8 at a time, turning to brown. Remove and drain on a paper towel after each batch. Set meatballs aside.
In the same pot, add the onions and garlic and cook for a few minutes, or until translucent. Pour in whole tomatoes, crushed tomatoes, and wine, if using. Add salt, pepper, sugar, and parsley. Stir to combine and cook over medium heat for 20 minutes.
Add meatballs to pot and stir in gently. Reduce heat to a simmer and cook for 30 minutes, stirring very gently a couple of times during the simmer.
Just before serving, stir in basil if using.
Serve over cooked spaghetti. Sprinkle with extra Parmesan.