Make the sauce: Put the tomatoes, onion and butter in a heavy saucepan over medium heat. Bring the sauce to a simmer then lower the heat to keep the sauce at a slow, steady simmer for about 45 minutes, or until droplets of fat float free of the tomatoes. Stir occasionally, crushing the tomatoes against the side of the pot with a wooden spoon or against the bottom of the pot with a potato masher, to get your desired texture. Remove from heat, discard the onion, add salt to taste and keep warm while you prepare your pasta.
To finish: Cook pasta in well-salted water until one minute shy of done. Reserve 1 cup of pasta water and drain the rest. Add spaghetti to pot with tomato sauce and toss to coat, cooking for 1 minute together. Add reserved pasta water, if needed, a splash at a time, to loosen the sauce.
Serve with or without grated parmesan cheese to pass.
