How to use mathutils.geometry.tessellate_polygon()?
The tessellate_polygon() function expects a list of lists (or tuples) for its only argument veclist_list. This allows for polygons with holes. You can commonly leave out additional sequences of Vectors, and just pass it one set of Vectors that form a polyine: tessellate_polygon((points,)).

Here's a script that takes the first polygon of the selected mesh object and uses its vertices as points for the tessellation function (actually, it's a triangulation function). A new mesh is created from the results, leading to a copy of the initial face at a first glance. But if you look closer, you will notice that it consists of multiple triangles (if the input was a quad or ngon), and they aren't connected. To show this better, I added an "explode" feature (move all verts of a triangle based on the distance between the triangle center and the center of the mesh):

import bpy
import bmesh
from mathutils import Vector
from mathutils.geometry import tessellate_polygon

scene = bpy.context.scene
me = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(me)

points = [v.co for v in bm.faces[0].verts]

tess = tessellate_polygon((points,))

bm_tess = bmesh.new()

faces = []
for tri in tess:
    verts = []
    for p in tri:
        verts.append(bm_tess.verts.new(points[p]))
    faces.append(bm_tess.faces.new(verts))

# Explode
for face in faces:
    center = face.calc_center_median()
    for vert in face.verts:
        vert.co += center

me_tess = bpy.data.meshes.new("Tris")
bm_tess.to_mesh(me_tess)

ob = bpy.data.objects.new("Tris", me_tess)
scene.objects.link(ob)
scene.update()