Reshiwott, Personally, I prefer making my own art for fakes. However, if you're not confident in your art ability, I suggest looking for images on deviantArt because it is custom artwork and you can interact with the artist (like asking if you can use their work).
As far as programs go, if you have Photoshop, it's the best thing to use. If you don't have it and don't want to pay for it, you can download GIMP for free. It has many of the same features as Photoshop. The only problem is with how it handles text. You have to go to greater lengths to format everything properly. If you don't have it, you can find it here: http://www.gimp.org/downloads/
Before putting the fake together, you need to figure out what kind of blank you're going to use (Classic, Neo, ex, DP, BW, or a custom blank), then find a font guide for it (if available) and make sure you have all the fonts installed. These are all the fonts traditionally used on Pokemon cards, though some custom blanks call for others: http://pokemonresource.wikinet.org/wiki/Fonts
Some font guides are ready-made so all you have to do is replace the filler text. However, note that many of these guides were made with Photoshop, so you won't be able to edit the text if you're using GIMP. Some of these have been made especially for GIMP, though. You can find them as well as some nifty other guides here: http://pokemoncardresources.deviantart.com/gallery/30758233
I don't know of anything else to cover, so let me know if you need anymore help.