Here would be a way to add a new feature to a polygon vector:
# reference your layer, such as the active layer
lyr = iface.activeLayer()
# get the vertexes of your new geometry and add them to a list
coordinatePairs = 
# create a polygon using the above coordinates
newPolygon = QgsGeometry.fromPolygon([coordinatePairs])
# create a feature, add the polygon to it
feature = QgsFeature()
# access the layer"s data provider, add the feature to it
dataProvider = lyr.dataProvider()
# refresh map canvas to see the result
With my comments I think this should be pretty self-explanatory.
In this case you would not even have to start an edit session, and you would write this feature directly to the file, which might not exactly be what you are trying to implement.
Either way, what is now missing is that the points that are appended to this list, are not hard-coded but are actually coming from the user. You would therefore have to combine all of this with a click event that gets the coordinates on click and appends them to the list. Since this is all done via a plugin I would also suggest you add a button that lets you start the editing (i.e. setting new points) and lets you stop it (so a button that allows toggling, like the typical "Add Feature" button, but you could surely add two separate buttons as well). The button functionality would, of course, come from PyQt, and then reference to your PyQGIS functions. You also might want to add a line that combines each single point that is set to be used as a vertex. Although optional, that would greatly enhance the user experience.
The above example, by the way, would create a polygon that more or less hides Colombia:
PS: for inspiration I looked at the PyQGIS Cookbook that was released by Packt Pub a few days ago.