In terms of software, I am mostly familiar with the adobe creative suite. I have used;
For desktop publishing I would choose inDesign, it has the best text editing tools and ideal for layouts for anything from flyers to books.
Photoshop and illustrator are stronger at photo editing and producing vector imagery respectively, these used in conjunction with inDesign would make a perfect combination for producing for example a pamphlet or an illustrated book.
The difference between photoshop and illustrator is the way they produce the graphics, illustrator is vector software and photoshop is pixel based, although photoshop does offer some vector tools, the output is normally pixel based such as jpegs, pdfs etc.
Vector graphics are becoming more common on web, the idea being that regardless of size displayed they will always be clear, they are also useful in printed work, especially icons and logos which are easier to scale up and down with no distortion.
There is no perfect software that does everything exceptionally well so having a suite is a good option.