How to build an IR Repeater?
The best thing would be to use an IR receiver module, and remodulate the output signal.
Now before you call me an idiot :-) to first demodulate and then remodulate, let me explain.
If you just receive the signal without filtering by means of a photodiode you get all kind of trash with the signal, possibly even drowning the signal. And that's not what you want to retransmit. So to get rid of all possible noise we use the IR receiver module, which has a filter for this. The output is the baseband signal, the lower trace in this screenshot:  

  

The top trace is the modulated signal. We'll have to reconstruct that, and that's amazingly easy: just AND the baseband signal with a 36kHz square wave (or whatever the carrier frequency you have).  



The baseband signal is the CONTROL which enables the oscillator. For a 74HC132 quad NAND gate the oscillator's frequency is given by the following equation:  


  \$f = \dfrac{1}{T} \approx \dfrac{1}{0.8 \times RC}\$  


Since the IR receiver gives an active low signal, and we also need a low output signal when the oscillator is off, we actually need a Schmitt-trigger NOR gate, but those are harder to get, so we make a NOR from our NAND by inverting the control input and the output. We can use two of the three remaining NAND gates of the 74HC132 for that. The inverted output can then be used to drive a transistor which in turn switches an infrared LED.  

So what do we have: an IR receiver module, a 74HC132 quad NAND gate, a transistor and an IR LED. That's all you need to build an IR repeater.

edit
supercat rightly comments about the AGC amplifying incoming noise for lack of a proper signal. This does indeed happen, and it may mean that our Schmitt-trigger oscillator may be switched on and off quickly by this noise. I admit that this doesn't look nice, but there's probably no harm. Chances are that the carrier is so much corrupted that the second receiver won't lock onto it, and else it will output the noise it receives. Noise it would also output when no signal is received.  

There is a better solution that doesn't suffer from this disadvantage. It would be nice if the IR receiver had a "data valid" output, but I've never seen such a component. But if we have our signal decoded by a microcontroller we can tell whether it's a valid signal or not. And then the microcontroller can resend the received codes. The microcontroller can create the carrier, so that it can replace the 74HC132 oscillator.
While we're at it we can introduce another enhancement. The duty cycle of the 74HC132's output was 50%, which is also the duty cycle used by the first RC transmitters. To save battery power later generations of transmitters used 33% or even 25% duty cycles, as shown in the following scope screenshots:  





By using the microcontroller's PWM output we can easily create a 25% duty cycle carrier.