Both are vector graphics (typically) and both can be imported painlessly into a pdflatex document (so let's say we ignore dvi for this question).
What are the advantages and disadvantages of each? What should I use?
Use PDF. EPS cannot be imported directly by pdftex but must be converted using something like
epstopdf. These conversion procedures will often cause unwanted changes to the graphics, such as lossy JPEG encoding of embedded bitmap images. Pdftex will include PDF files directly without making any changes (except for unifying fonts, and even that can be disabled if needed), so you can have complete control over the final result by generating a PDF which is exactly as you want it (assuming your image editing software gives you control over image encoding lossiness, colour spaces, etc).
EPS doesn't support transparency and embeds bitmap images without compression. PDF all the way.
\includegraphicsand compiled with
pdflatex(see answer by Lev Bishop)
One advantage of EPS figures is the ability to use the psfrag package to replace axis labels etc. with properly LaTeXed versions generated with the same fonts etc. as your main document. I used to generate all my plots with matplotlib or MATLAB using this feature. Matplotlib's support for this is broken, but it instead provides a usetex option that allows you to embed LaTeX generated the labels directly in PDF files which I now use exclusively.
(See also: Using psfrag with pdflatex.)
latex, etc. The decision in choosing a compiler also depends on your real scenario. If you are developing a web based system, for example, a bunch of EPS images generated on the fly should be imported to LaTeX input files directly, they are then compiled with
latex. Converting the EPS to PDF, importing the resulting PDF to LaTeX input files, and compiling them using
pdflatexwill hurt the performance.
It cannot be decided without knowing your real scenario.
For really big bitmapped images, I've always converted to jpeg at the required quality, then I'd use 'jpeg2ps' which takes just the raw jpeg data and wraps it in a postscript wrapper. It's been a lifesaver for me on arXiv. You can then use 'eps2pdf' to get it the way you want it.