If you get better compression performance (P-frame), you need more computation.
If you get better computation performance (I-frame), you get worse compression. (I dont' know why I added P-frame and I-frame there. These compression performance/computation thing works for both of them. It is a trade off [8/1/2012])
In general, inter prediction gets the better compression performance.
Intra prediction is not the best prediction. But in some cases, such as the very first frame, we have to use intra prediction.
Intra prediction can get better performance too, e.g., in very complicated video scene, such as smoke, explosion, it is very difficult to use inter prediction. Another example, when you random access the point of a video, you want to use intra to start from there.
I-frame: a random access unit.
[update 8/1/2012]: If only using p-frames, the reconstruction errors will accumulate. An I-frame is required for every N frames, N depends on the application, N=15 or 30 in my case.