On the hardware side, with Intel you are limited by the 32-bit architecture of Intel based servers, though that may change with the future availability of 64-bit on the PC. As an aside, I would say if you need to run your database on a Windows server, at least go to Windows 2000 or 2003; get off of XP, which is a desktop operating system.
Another area where Linux beats Windows hands-down is control. With Linux, bug fixes and upgrades are much more available, which results in a more stable OS. With Windows, you are at the control of your Microsoft masters.
One's actual software migration from Windows to Linux or Unix depends on a lot of things. Is your code proprietary or is written in Java? How many folks use the database concurrently, and how many different offices need to access to the system. What compilers are available for your language? These answers dictate a lot, and will define whether or not a new back-end infrastructure might need to be built to support your migration. What's the SLA for your application? Does it require high-availability? Generally, you are not going to be able to do this yourself, so be prepared to enlist the services of a top-notch systems integrator that will help you with the process. You may want to reach out to some of the Linux variants (I.E. Red Hat) to help you with this. Red Hat has is ready, willing and able to help you: http://www.redhat.com/services/consulting/
This was first published in December 2003