Well rectangular collision detection is not only for rectangular images, but it is less accurate (alot less) than pixel perfect! I'll have a look for a good tutorial and otherwise I can e-mail you one...

EDIT : Okay, the tutorial I used to learn it is located here:
http://www.ifm.liu.se/~ulfek/projects/tutorial.pdf
It's a very good tutorial, only downside is it's in C and that it uses masks to do the collision detection. I used a simple collision array to do it, which simply is a 2 dimensional array filled with 0 and 1 and on of those numbers (your choice) is used for transparent areas and the other for solid areas. The tutorial can strike you as very hard but it isn't, I must admit that I had to read it 4 times to understand what he was talking about, but a bitmask is simply a 1bit bitmap which means that the pixels can either be black or white. What he simply checks for is if any of the solid pixels of both bitmasks (or collision arrays) overlap eachother and if that is the case you have a collision, if not then you don't! I never used his code, but only the theory. I'll try to write a tutorial on pixel perfect collision detection in the near future.

Hope this helps a bit...

P.S. If I where you I would start out with rectangular collisions! If you are going to use pixel perfect cd you will need rectangular too, since it's best to first do rectangular collision detection and only if there are two colliding rectangles to do pixel perfect cd since otherwise the speed of you program decreases with about 25% - 50% !!!