Old thread, but straight forward solution. This is actually pretty simple if you make full use of the Graphics and Drawing2D namespaces.
GraphicsPath.AddLines( Point[] )
Graphics.DrawPath( Drawing2D.GraphicsPath )
Graphics.FillPath( Drawing2D.GraphicsPath )
GraphcisPath.CloseFigure( )
So you'd simply create a new path, then call AddLines passing your array of points, and then call CloseFigure.
If you want to stroke it with a pen, use DrawPath. If you want to fill it with a brush, use FillPath.
Hit test for any points inside the polygon is simple as well, you would use Drawing.Region( Drawing2D.GraphicsPath ) and any overload of Region.IsVisible that allows you to specify a position and graphics object.