Periodically set the userpoints for every user I would like to set the user points of members of my site to an x amount at the start of each month.
What would be the best way for this?

The closest I found so far was this:
http://drupal.org/node/549640

There are a few issues with this though:
1. It adds 5 points, instead of setting it to 5 universally
2. It uses a while loop which can take long if there are a lot of users

I am thinking of a quick and dirty UPDATE SQL query that does this in one go.
you could extend the userpoints module to have some actions exposed to VBO then execute that periodically with Rules. Depends how much time you have, but it would be a nice addition to that module..