I've used Photoshop for years, and recently upgraded to Photoshop CS5 mainly for one feature called Content-Aware Fill. It allows you to remove an element from an image, and the software very cleverly fills it in based on what is around the deleted object. It's quite amazing to use, and I'm often calling it up for landscape photos when an errant tourist or power line gets in the way of what would otherwise be a nice image.
If you're not about to shell out several hundred for Photoshop, or almost a hundred for Photoshop Elements which has a similar feature, let me direct your attention to