A large multinational company I worked for until a year ago made a massive switch from SQL Server to MySQL, with support from a multinational DB support firm. We saved millions of dollars per year from year one in license and support fees, even after the (direct and indirect) costs of migration and cross-training the DBAs to MySQL. Performance improved significantly in three cases, improved slightly in a few others, and stayed the same in the rest. Nowhere did we see performance decreases or downtime increases. We kept one instance of SQL Server for the data warehouse, because the users preferred Microsoft's ETL and reporting tools.
The company I'm currently working for has a mix of Oracle, MySQL, SQL Server and Informix. They've decided to standardized on SQL Server, for which they're shelling millions in license fees and migration costs, and so far there's been no performance or uptime gain. A critical multi-terabyte DB has been left for later in the migration project: everyone (apart from the consultants and a few managers) is worried it's not going to work, and wishes we could simply leave these perfectly good, working database servers alone.
MySQL used to be thought of as a low-end RDBMS, but has evolved into a good choice for many applications, though of course no single RDBMS is the right choice for all types of DBs. For the point-of-sale application asked about here, if the .NET code is written to be DB-neutral, and if there are no stored procedures server-side, then MySQL may be a good choice: ask your app vendor, jdray. It offers several options for high availability, according to the application's requirements, including Windows Server Failover Clustering, Oracle's MySQL Cluster, Codership's Galera Cluster for MySQL, simple master-master replication, and a few others.