iPhone can play MPEG-4 base video file(s).  The typical container file extensions are MP4, MOV, and M4V.

There two video coding method in MPEG-4 as follows

     MPEG4 ASP (or SP) 

     ASP (Advanced Simple Profile) is the updated version of SP(Simple Profile) but not big difference. 
     ASP can support B frames, QPel, GMC, and others.
     If use this kind of advanced encoding option while transcoding, iPhone can not play correctly.
     If use QPel, GMC option, iTunes will not allow to add the media file input sync windows.
     If use B frame, the movie can be copied to iPhone. But block masking screen will be apeared while playing. 
     While convert from XVID/DIVX to MPEG-4 ASP, the encoding method should be verifed.

     MPEG4 AVC (Advacned Video Coding)
    
     h264(x264) codec has been known as a best quality video encoding method.
     and there are some type of encoding profile such as BP(Base Profile), MP(Main Profile), and HP(High Profile).
     Each profile has some kind of level which specified by the encoding option, maximum bit rate, and resolution.
     Officially, iPhone can support H264 BP Level 3.0 but bitrate should be less than 2.5Mbps.
     When I testing, encoding level is not affected on. actually, the resolution and bit rate of movie is the important factor. 
     Even iPhone can support  up to 640x480 30fps, but, iPhone play some 720x480 movies also.
     Anyway, to convert h264 video without transcoding, the movice should encoded with BP.
     But, it's not easy to dectect in AVI container. Because of most AVI format (which use H264) don't have the profile 
     information.

Finally, I've decided to support 

     XVID/DIVX/DX50/MP42 in AVI/MP4/M4V
     if B/QPel/GMC is not used and the resolution is wihtin the range, this file will be converted to MP4 wihtout transcoding.
     But, audio will be converted to AAC format.

     h264 in AVI
     if this program can dectect the profile and BP has been used, this file will be demuxed and muxed again.
     audio will be converted to AAC format.

     h264 in MP4/M4V
     if video has been encoded with BP, the file will be converted. 

Subtitle for iPhone

     The new version  (maybe 0.4.x) will support, multi subtitle for iPhone.