We've been using Linksys SPA942 phones, SNOM phones and the Cisco 7940G phones (and ATA 186) - all work quite well so far.
The Ciscos are the trickiest as you'll almost always get them delivered running the SCCP version and it takes a bit of patience to upgrade them to the SIP version - there is no web GUI on them either, only basic telnet functions.
We have been using the following platform in this setup:
Win XP SP2, 3Com TFTP Server, IIS.
To upgrade the 7940 phones, we needed to keep the SEP[MAC].cnf.xml file out of the tftp root directory until the phones picked up their xmldefault.cnf.xml files first, otherwise they wouldn't upgrade.
OS79XX.txt
P0S3-08-2-00.loads
P0S3-08-2-00.bin
P003-08-2-00.bin
P003-08-2-00.sbs
XMLDefault.cnf.xml
Once you have successfully partially upgraded the phone, you then add in the sep files...
ie:
SIP[MAC].cnf
SEP[MAC]cnf.xml
and it should finish the upgrade - you should see the word SIP appear in the top right hand corner of the LCD screen when this finishes and you can monitor the process on the TFTP server screen.
We found that by configuring the second line as a pre-set dial to '888' or something similar for the call intercept was the only real way we could configure a soft button for 'call pickup'. We also found that we could only do this manually on each handset as opposed to adding it to the config files (hope this saves you some time one day if you're trying to modify the soft key menus on the phones)