Hmm - I was looking at the following code for a PyQt4 program:

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

Could someone please explain what sys.argv does/means, and what it means in this context.

sys.argv is the list of command line arguments that were passed to your python program. QApplication() may use command line arguments, as described here for example http://doc.trolltech.com/latest/qapplication.html#QApplication (this is not the python version, but the same principle applies).
Here is a example program

# myprog.py
import sys
print(sys.argv)

And its execution in a shell

$ python myprog.py --geometry=200x324 1 2 3
['myprog.py', '--geometry=200x324', '1', '2', '3']