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