Heat a large pot of salted water to boil for the pasta.
Melt the butter in a sauce pot over medium heat. Add the basil, garlic, if using, onions and tomatoes and season with salt. Bring to a simmer and let reduce 20 minutes, stirring occasionally. After 12 to 13 minutes in, drop the pasta into the boiling water and cook to al dente.
Remove the onion halves from the sauce and add a ladle of starchy pasta cooking water. Drain the pasta and add to the sauce. Toss to combine. Serve the pasta topped with Parmigiano-Reggiano.
Using crushed tomatoes rather than breaking down whole tomatoes cuts the cook time of this sauce in half.