On page
http://content.gpwiki.org/index.php/Polygon_Collision there is some, probably, wrong info. In section about non-convex objects described algorithm, which suggests to perform point-in-polygon test for each vertex of another polygon. But if we find that no vertex lies inside polygon, it means nothing. For example, take a look at character '+'. Plus consists of two axes-oriented boxes (polygons). Every vertex is outside boxes. But polygons collides.
This algorithm will work correctly under some conditions: if we check for collision every STEP seconds, we know that at STEP seconds before now polygons didnt collides, and we know that maximum speed of any object multiplied by 2*STEP is lower then minimum "width" of object. "Width" in this context needs separate definition, but I'm not strong in English, and I think that my attempts to define this will not give you a clearer undestanding but, on the contrary, will perplex you. =)
If we needs some extremly simple, but always giving true results, then we need to check for collision each pair e1, e2, where e1 some is edge of polygon #1, and e2 is edge of polygon #2. But this is not so fast. This approach have O(m*n) complexity, where m and n are numbers of vertices of polygons.