As with any other object, you just need to replace the various images used as textures on the original object with your own images. You can tell which ones are being used as textures on the mesh (as distinct from icons, etc.) by the fact that they will each be accompanied by a corresponding *.texture.txt file.
The re-skin image files must have exactly the same name and file type as the originals, and it's a good idea that the re-skin images have the same width and height as the ones they are replacing. If the original mesh uses more complex textures (eg. those having transparency or normal maps included), then you need to supply equivalents for those as well.
The *.texture.txt files can be opened with Notepad and give you a clue as to which images are used in that texture and what their function is. For example, the file wall.texture.txt might contain the following information;
Primary=wall.tga
Alpha=wall.tga
Tile=st
That tells you that the image wall.tga has a visible part (the Primary) and also another part (the Alpha) which makes certain areas of the visible image transparent in Trainz.
As for creating these images, you need a graphics program. The usual ones cited range from the fully-featured Photoshop or PaintShop Pro to others like Gimp, Paint.net, IrfanView etc. Depends on what you need to do and your own skills in using these programs. If you have to make normal maps, many of the better programs either have this ability or can be enhanced with plug-ins for that. One or two of the freeware PEV tools have normal map facilities too.