I just finished writing an essay about this topic for an American history class in college (I've already submitted it, so none of your answers are in danger of being stolen!).
While doing my research (based on sources provided by my instructor) I came to my own conclusions, but I'd be very interested in hearing what the general consensus is... and also in determining if my theory was more or less 'correct'.
Thank you!
edit: I meant 'What' not 'Why', of course. Sigh.
There were two final causes which tipped the US into the war:
One was the Zimmerman telegram, which instructed the German ambassador to Mexico to propose an alliance with the Mexicans whereby if the US declared war on Germany, Mexico would invade. Germany promised to support Mexico in reclaiming territories lost in the Mexican American War.
The other was the German decision to resume unrestricted submarine warfare, and sink any ships sailing to England or France (including American ships). The Germans thought that the resumption of unrestricted submarine warfare would cause America to enter the war, but they thought that it would take well over a year for America to mobilize any forces to go to Europe, and they decided to risk it. (The Zimmerman telegram was sent in anticipation of an American declaration of war once unrestricted submarine warfare was resumed.)
The Germans resumed unrestricted submarine warfare and sank five American ships in March 1917. The British intercepted the Zimmerman telegram and sent the contents to the U.S.
Both infuriated American public opinion. In April 1917 the U.S. declared war on Germany.
The sinking of the American ships would have probably brought the U.S. into the war even without the Zimmerman telegram, but as it turned out, both were part of the final push which sent America into the war.