Graphs in R and MATLAB (I don't know about the rest) are very customizable; if you don't like how they look, there are a million different options you can change (indeed, most of my scripts for making publication-quality plots are quite long, because I tweak a lot of properties to get the plots looking the way I want), which you can find out about by Googling any individual issue (e.g. how to make a line thicker, how to make lines smoother, etc., how to show filled circles instead of open circles in a scatterplot, whatever).
Another thing many people do is create a basic graph in their statistical software but then export it to clean up by hand in image processing software like Photoshop, Illustrator, GIMP, Inkscape, etc.
If you dont like basic R graphs but do have a R workflow, try ggplot, this is more than just a package. With ggplot designing graphs comes more easily and intuitive and everything is very well structured. Ggplot also offers a lot of graph types which are not that easily arranged with basic R plots. You can learn ggplot quickly and customize your plots. I can only recommend ggplot to everyone using and learning R! GGplot enabled me to look beyond standard plots like bargraphs and think about how I want my data to be displayed instead of forcing it into a few predefined plots.
Heres the book: (Might be a bit outdated)
Wickham, Hadley. ggplot2: elegant graphics for data analysis. Springer Science & Business Media, 2009.
While ggplot2 is nice, please also keep in mind that no package always makes publication- or presentation-ready graphs straight out of the box. There is almost always a need for some tweaking of font sizes, line widths, colors, whatever. Some people seem to have the misconception that if they use ggplot2 then their plots will automatically be ready to put straight into their slides. I cannot tell you how many unreadable plots I've seen where the text was too small and the lines too skinny for me to see from where I was sitting. No matter what package you're using, you need to set aside some time to think about how your plots are going to look to your audience, and to make whatever changes are necessary to make them clear and easily readable.
I suggest you to have a look at gnuplot and PLplot too. Both are very matured and customizable packages. One can use gnuplot both as a standalone interactive plotting application or in batch mode by writing "scripts" in its own mini language. PLplot is more suitable for using as a library although you can use gnuplot like that too. Needless to say they are free software i.e. "free as in beer" (no license fees) and "free as in freedom" (basically you can do whatever you want with them). Indeed gnuplot is so popular that most of popular open source software like Octave (free Matlab compatible numerical computation system) uses it as its plotter, among many others.
The majority of plots I've made for publications were done in Microsoft Excel. It's relatively easy to format the plot as you would like, and relatively easy to make a figure with multiple plots lined up as you like. It's easy to add text boxes and such.
The key is what Stephen said above: you have to make the plots easy to read and understand: bold lines, bold text, not too much information, no weird colors or shading for publications. No matter what software you use, you're going to end up changing every axis title and tick mark mark to make it the way you want.
I've been using ggplot2 more and more, but, honestly, the time I spend searching online for how to do something is probably not worth it compared with just making it in Excel.
Attached is what I think of as a good plot for publication: everything is bold and clear, and there's no shading or anything else that may come out poorly if the publication quality isn't great.
I would do the same for a presentation, except add color.
(From: 2007. S.S. Mangiafico and K. Guillard. Nitrate leaching from Kentucky bluegrass soil columns predicted with anion exchange membranes. Soil Science Society of America Journal 71:210–224.)
@Salvatore I get your point on using Excel, i.e. being easy to use, easy to modify, finding ways to accomplish something by just interacting with GUI etc. but how about exporting graphics into a different format like EPS that is required by some LaTeX graphics environments. I totally agree with you on the guidelines of how a good publication quality plot should be, but unless you are not writing your paper in MS Word using Excel for plotting doesn't give the best results for my experience.
Most of the places I've submitted to ask for .jpg or something similar.
Whichever program I use, I always find it best to export the document to pdf, and then open the pdf in PhotoShop or GIMP (free), and save it in the desired format.
This works well in R Studio, too.
Inkscape (free) should be able to convert pdf to eps, but I've never really worked with eps.