See this related question. All the same advice applies in your case. Just to highlight a few points:
- Using R is a good way to go, especially with the ggplot2 package. This is both flexible and produces very high quality output. There are plenty of examples on the ggplot2 website and across the web (including on this website).
- To improve the quality of your plots, you should consider using a different device driver than the default, and choose a high-quality output (e.g. SVG). The Cairo package is one good option. You simply call your plot function before plotting and it redirects to Cairo as the output device. Cairo can be used with any plotting software, not just with R.
- In terms of putting your plots together in a LaTeX publication, that's the role that Sweave plays. It makes combining plots with your paper a trivial operation (and has the added benefit of leaving you with something that is reproducible and understandable). Use cacheSweave if you have long-running computations.
If you want more specific help on a particular plot, I advise giving more detail.
Edit
If you want a specific example, it is best that you provide more specfics. For more examples of using ggplot, you can also refer to the LearnR blog. Here's an example combining ggplot with Cario for high quality output.
CairoPDF("plot.pdf", 6, 6, bg="transparent")
qplot(factor(cyl), wt, geom=c("boxplot", "jitter"), color=am, data=mtcars)
dev.off()
You can look at the documentation for these packages by using the R help functions.