Place all of the meatball ingredients in a large bowl and mix well.
Form the meat mixutre into 24 balls and place on a plate. Set aside.
In a 6qt pot or dutch oven, heat the oil on medium heat. Add the onions and garlic and saute until soft and aromatic.
Add the seasonings, crushed tomatoes and tomato sauce. Stir to combine and turn burner to low.
Heat a large skillet on medium heat and add 2 tbsp of oil. Working in batches, brown the meatballs on all sides, then transfer to the tomato sauce. The meatballs do not have to be cooked through at this point as they will conitnue to cook in the sauce.
Once all the meatballs are in the sauce, cover the pot with the lid and walk away. Gently stir every half hour or so and if the sauce is begining to boil, or you notice water pooling on top, then vent the lid by placing it slightly off centre of the pot. This will help steam escape.
Once the meatballs have been simmering almost 2 hours, bring a large pot of water to a boild and drop the spaghetti noodles in. Cook according to package directions, then drain.
Serve the pasta with a generous scoop of sauce and meatballs. Garnish with fresh basil, parsely or fresh grated parmesan cheese.