I don't do this often enough to remember, but I've included it here for future reference. I find that I usually only need to do this when a client fails to backup their transacation logs for a while and then they call (in panic) because they have run out of drive space.
Truncate the log to the oldest transaction:
BACKUP LOG dbname WITH NO_LOG
To make the transaction file physically smaller, issue this command:
DBCC SHRINKFILE ('logical filename', target MB)
If the backup doesn't seem to shrink the log file as much as expected, issue the following command to see the open transactions:
DBCC OPENTRAN('dbname')