We use an Asterisk based solution as our PBX, and although we've found hardphones work flawlessly, we have yet to find a reliable softphone.
The basic requirement is that it allows multiple calls and transfers.
I don't have a comprehensive list, but most of what we've tried adds delay to the voice (echo), garbles the sound, doesn't allow more than one call at a time, or just plain won't work.
On Windows we're fine (SJPhone), and although I'd prefer to use the same softphone for both OSes, I will settle for a good Linux-only one.
Any recommendations?