One of the nice features of OFDM is that it allows a very simple structure for the modulator and demodulator: given a set of symbols (in general complex-valued, taken from a signal constellation such as BPSK, QPSK, or QAM) to map onto each carrier, the modulator can be implemented using an inverse discrete Fourier transform, typically implemented using an FFT. Each set of symbols (one per carrier) is transformed to yield an OFDM symbol, which is then sent to the channel. The DFT length will typically be chosen to be larger than the number of desired carriers to allow some "guard band" near the system Nyquist rate.
In addition to the above DFT-based structure, most OFDM systems also incorporate a cyclic prefix, which allows for simple implementation of an equalizer in the frequency domain. Equalization can provide improved link performance in multipath environments (e.g. many wireless communication scenarios). It can also be used to aid in synchronization, as described below.
The simple structure carries over to the receiver; an OFDM waveform can be demodulated using the inverse transform to that used at the transmitter, yielding the original symbol values. The inverse to the inverse DFT used at the transmitter is a "regular" (forward) DFT. Thus, you will often see OFDM receivers diagrammed with an "FFT" block at the front end. The output of the transform contains the symbol values mapped onto each of the carriers, including all of the unused ones that make up the guard band. The demodulator plucks out the (complex-valued) amplitudes of each of the carriers of interest and passes those on to any further decoding logic (equalization as described above, channel decoding, mapping to bits, etc.).
As usual, however, the answer isn't quite so simple; the above explanation overlooks some important issues that must be addressed for a practical system:
Timing synchronization: When you actually think about how you would build an OFDM receiver, one of the first problems you will run into is how to align the receiver's FFT frame with the stream of incoming samples. Synchronization with the OFDM signal's symbol timing is required to properly align the receiver's FFT operation with the appropriate time period in the observed sample stream.
This can be implemented using a correlation-based approach. As stated previously, most OFDM waveforms include a cyclic prefix, which is a scheme of forceably adding some circular periodicity to the transmitted waveform. This can be exploited at the receiver to obtain symbol timing; the timing detector simply calculates the sliding autocorrelation of the observed symbol stream using a lag commensurate with the known period between the transmitted signal and its cyclic copy. The magnitude of the result will reach a peak at the instant that corresponds to the start of each OFDM symbol.
Frequency synchronization: Fine frequency synchronization is also key to robust OFDM reception, as frequency error causes intercarrier interference. Correction of frequency error can also be estimated using the timing synchronizer's correlator output. As stated previously, the autocorrelation of the observed stream at a lag equal to the cyclic prefix delay has a large magnitude at the start of each OFDM symbol. The phase of the correlator output provides a measure of the amount of phase drift over the course of each symbol time. This measure of "phase drift per unit time" can be recast as a measure of "frequency drift" instead. If the receiver can safely assume that the frequency error is constant over the course of a symbol time (which is reasonable for many cases), then the bulk frequency offset can be removed before calculating the DFT.
There can be even more problems to tackle for each of your carriers, depending upon the modulation used on each. For the simple case of BPSK, you may also need to worry about phase synchronization if you desire a coherent receiver. However, synchronization of timing and frequency are the key implementation details that often seemed to be glossed over in discussion of OFDM receiver structures.