Stefan Pollard explains what's the difference between Sender ID and SPF in this ClickZ article. Here's the summary:
The Sender ID and SPF protocals are almost identical in syntax. They differ in how the receiver domain looks up your authentication record, which is a line of code inserted in your DNS record that appears in your e-mail message headers.
SPF checks are performed against the domain from the envelope's return-path address, typically called the bounce address. Sender ID checks are performed against the purported responsible address (PRA), that is, the visible sender address in the message.
Let's say the domains in those addresses are the same. Then you as the sender can pass a Sender ID check with only an SPF record. If the domains are different, you should create both records and place them in the corresponding domains.
When in doubt, place your SPF record in all domains you have control over. This increases the chance the record will be placed where the receiver is checking.
Hotmail has been the most vocal Sender ID advocate. Recently, it issued guidelines for creating a record and the mechanisms to avoid. Hotmail has specifically requested senders not to use the PTR (define) mechanism. It also recently asked senders to use a hard fail " -all" at the end of their records to indicate their e-mail infrastructure is secure.
One last note on implementing Sender ID and SPF: It's not uncommon for a sender to change IP addresses or providers. Most ISPs will perform authentication checks on inbound e-mail by directly querying your DNS zone.
If you've changed your Sender ID and SPF records recently, use the following URL to update Hotmail: http://support.msn.com/default.aspx?productKey=senderid&mkt=en-us.
In some cases, if the Sender ID/SPF record contains syntax errors, Hotmail will even send an e-mail to alert you of the problem so you can make corrections before you have delivery problems.