If using homemade meatballs, prepare the meatballs and bake or pan fry until completely cooked; remove from heat; set aside.
If using store-bought meataballs, prepare according to package instructions; set aside.
In a large, heavy-bottomed pot, over medium heat, add the olive oil, onion, celery and carrots; saute for 5 to 7 minutes.
Add the garlic; saute for another 2 to 3 minutes.
Add the tomatoes, tomato sauce, vegetable broth, basil, oregano, salt and ground black pepper; stir to combine.
Cover with a tight-fitting lid; simmer over medium-low heat for 20 to 25 minutes, or until carrots are cooked.
Add the pasta to the pot; stir to combine.
Place the meatballs into the soup.
Place the lid back on the pot and simmer for 5 minutes.
Check to see if the pasta is cooked; cook for a minute or two more if needed; remove from heat.
Add half of the chopped parsley and stir into the soup.
Remove from the heat and ladle soup into bowls; garnish with more parsley and a tablespoon or two of the freshly grated parmesan cheese, if using.