What's the best way to link two (or more) LEGO Power Functions (PF) train motors together?
If the motors are far apart, you could simply connect them both to the same receiver using some extension cables. To the best of my knowledge, there is no problem connecting two motors on the same input of one IR receiver.

If you're using Technic motors instead of train motors, as Zhaph said, you'll probably want to have them coupled through a differential so that no motor can stress the other. That's the standard way of doing it in any Technic creation, and since it effectively adds the two input speeds (from the motors), it means you can create some variation in speed very easily.

I did that to power a PF-modified 7740 engine with two medium motors when the only remote available was the simple on/off one: one motor had its speed reduced to 1/3, so the range of available speeds where 4/3 (both motors on), 3/3 (regular motor on, 1/3 motor off), 2/3 (regular motor forward, 1/3 motor reverse), 1/3 (1/3 motor only), 0, and the same in reverse. Was awfully complicated to use the remote to go from one speed to the next, though. And then LEGO produced a speed-control remote and I didn't look back to that idea again.)