Ok, I think I figured it out and I gotta say I don't like it one bit. You have to call SetSpriteShapePolygon for each point you want to add, making sure to add the points in order and keeping the number of polys the same:
SetSpriteShapePolygon(ball, 3, 0, 0, 0)
SetSpriteShapePolygon(ball, 3, 1, 20, 20)
SetSpriteShapePolygon(ball, 3, 2, 10, 40)
This makes a triangle.
What they NEED to do is allow passing of arrays, like the help documentation suggests, or do something like:
SetSpriteShapePolygon(ball, numPoints)
SetSpriteShapeVertex(ball, 0, 0, 0)
SetSpriteShapeVertex(ball, 1, 20, 20)
SetSpriteShapeVertex(ball, 2, 10, 40)
More lines, sure, but it makes a whole lot more sense.