For those of you coming to Lake Garda by train the closest railway station is Rovereto (on the Brennero line), some 20 kilometers from Riva del Garda (here you have the timetable on trenitalia.com). For those of you coming from Germany, the Deutsche Bahn line connects the country with the Rovereto railway station (click here for both the timetable and the prices).
From the Rovereto railway station you can use the bus service of Trentino Trasporti that takes you straight to Torbole, Riva del Garda and Arco (here you have the timetable).
For those of you coming by train from Milano or Venezia instead, it is possible to get off in Desenzano, Peschiera or in Verona.
From these railway stations it is possible to take the A.T.V (Azienda Trasporti Verona) buses towards Torbole and Riva del Garda changing bus in Garda: