As far as I can understand, the motivation to OFDM and multi carrier communication in general was alot due to the ISI caused by multi-path which is equivalent to frequency selective channel. Now, by using OFDM, we send our symbols over sub-carriers, thus each symbol in the frequency domain is affected by approximately a constant channel response. Then, why is there an aditional need for cyclic prefix? doesn't using sub-carriers enough for dealing with the ISI?
OFDM (sub)carriers are only exactly orthogonal over a certain IFFT block length (and integer multiples). Multipath echos will mix a subcarrier signal from the end of one symbol block into the beginning of the next, rendering the symbol in that carrier to be ambiguous over the initial one IFFT block length. A Cyclic Prefix extends the length of each symbol beyond just that of one IFFT length so that the IFFT can be (hopefully) done over a portion of the signal past where all the orthogonal subcarriers have been messed up with multipath echoes. Skipping past the messed up portion allows the (constant or otherwise) channel response to be mostly ignored by the receiver, while maintaining the orthogonality of all the subcarriers from each other.
Well, it is not that simple.
CP can be considered as a guard period between successive symbols and therefore interference from one (OFDM) symbol to another (ISI) is avoided. Let's forget about CP and put zeros instead, so that the ISI should still be avoided. That's exactly right, however, there is one more issue.
The samples in one OFDM symbol are also scrambled due to the channel delay spread or subcarriers in the frequency domain are faded differently. So, we still need to equalize this effect. Here the function of CP comes! One OFDM symbol is convolved with the channel impulse response "linearly". If somehow this linear convolution can be converted to a circular convolution, the equalization of the channel is quite easy. We just need to take the FFT of our received OFDM symbol and channel, and make a simple point-to-point division as
FFT(OFDM)./FFT(CHANNEL)(Channel should be zero padded to have the same size with the OFDM symbol) . So, what did CP do here? CP converts that linear convolution to a circular convolution by inserting the last samples of the OFDM symbol to the first samples.
If we don't use a CP and try to make the equalization in frequency domain as described above, then there will be intercarrier interference (ICI) between the subcarriers. So, CP has not only the function of avoiding ISI but also avoids ICI and facilitates frequency domain equalization without introducing any other problem.