What exactly are you struggling to understand?
surface.DrawPoly just takes a table in the following format:
{
{ x = number, y = number },
{ x = number, y = number },
{ x = number, y = number }
...
}
Each table within the outer table contains a coordinate pair which dictates where the vertex is drawn. surface.DrawPoly just connects the dots between these points (in order) and then fills in the area contained within the lines.
You can use this
Khan Academy exercise about polygons on Cartesian coordinate planes to see how different shapes correspond to coordinates.
Here's a trapezoid:

As you can see, the coordinates are at ( -4, 2 ), ( -6, -2 ), ( 6, 2 ), ( 4, 2 ).
If you wanted to do this in Garry's Mod, the table you would pass to DrawPoly would look something like this:
{
{ x = 300, y = 500 },
{ x = 100, y = 100 },
{ x = 900, y = 100 },
{ x = 700, y = 500 }
}
(I made this trapezoid a bit thinner so it will fit more screen sizes)
Let me know if this didn't make sense to you or if there's something else you're wondering about.