Cook the spaghetti according to the package directions. Drain and set aside.
Heat the olive oil in a deep skillet over medium heat. Add the onions, and saute until lightly golden, 2 to 3 minutes. Add the meat, tomatoes and butter, if using. Bring to a boil. Season with the salt and pepper. Stir in the basil leaves. Reduce the heat to low, and cook for 20 minutes.
Add the cooked pasta to the skillet, and toss well to coat. Divide among deep bowls to serve.
Rigatoni, penne or bowtie (farfalle) pasta also work with this sauce.