Pre-heat the oven to 400°F. Line a large baking sheet with aluminum foil (for easy cleanup) and spray with cooking spray.
In a small bowl, combine the breadcrumbs and milk. Set aside to rest while you prepare the remaining ingredients for the meatballs. (The breadcrumbs will absorb the milk as they rest.)
Add the beef, egg, Parmesan cheese, parsley, garlic, salt, and pepper to a medium bowl. Add the soaked breadcrumbs. Using your hands, mix gently just until all of the ingredients until just combined.
With lightly oiled hands, gently roll the meat mixture into 16 balls (roughly 2 inches in diameter), and place them an inch or so apart on the prepared baking sheet. Bake for 22-25 minutes or until lightly browned and cooked through.
Meanwhile, bring a large pot of salted water to a boil. Cook the spaghetti al dente according to the package directions.
Pour the marinara sauce into a medium sauté pan or Dutch oven and bring to a gentle simmer. Add the cooked meatballs to the sauce and simmer for 5 minutes.
Serve the meatballs and sauce over the cooked spaghetti. (You can also toss the spaghetti with the sauce and meatballs before serving if you prefer. If you do this, reserve a cup of pasta water. Add this pasta water as needed to thin the sauce when tossing with the pasta.) Top with freshly grated Parmesan and basil (if using).