What library should I use for network programming? Is sockets the best, or is there a higher level interface, that is standard?
I need something that will be pretty cross platform (ie. Linux, Windows, Mac OS X), and it only needs to be able to connect to other Python programs using the same library.
Socket is low level api, it is mapped directly to operating system interface.
Twisted, Tornado ... are high level framework (of course they are built on socket because socket is low level).
When it come to TCP/IP programming, you should have some basic knowledge to make a decision about what you shoud use:

Will you use well-known protocol like HTTP, FTP or create your own protocol? 
Blocking or non-blocking? Twisted, Tornado are non-blocking framework (basically like nodejs). 
Of course, socket can do everything because every other framework is base on its ;)
Network programming in Python