Their is a product called CrypKey from Kenomic Controls that uses either a SDK approach or an Instant EXE wrapper mechanism.
http://www.crypkey.comTheir are also other things you can do to your source to confuse debuggers like SoftICE but this usually involves playing around with ISR's etc.
I have personally found the dongle to be about the best method to deter casual piracy but be warned, their are generic VXD's available that fool protected products into thinking a dongle is attached and they work!