Another term for a POS (point of sale) application is "cash register." Although a cash register may seem to have a finite set of functional requirements, from an enterprise standpoint this category involves a surprising number of variables, including hardware compatibility, customized data gathering for verticals, and back-end data mining.
Fortunately, you have some options. A solid example of a mature open source POS application is PHP Point of Sale. Based on PHP and MySQL and licensed under the GPL (General Public License), it has an excellent feature set for basic POS scenarios. It also integrates with osCommerce, the leading open source e-commerce application, which means you can use PHP POS for online transactions as well as in brick-and-mortar environments. The software was launched in 2003 and has been downloaded more than 26,000 times. Version 9.0 is in development and promises updated sales and more flexible discounting, as well as an improved back-end reporting system.
Not every open source project makes it past its testing stages, but that doesn't mean you should ignore everything that lacks a "stable/production" tag on SourceForge.net. A good one to watch is Tina POS, a project that's currently on the cusp of production. Distributed under the GPL, Tina POS has great hardware support, including support for bar-code readers, touchscreens, and a variety of receipt printers. It connects to databases via JDBC, has a Java front end, and it provides good back-end office integration and reporting capabilities.
If no currently existing end-to-end POS solution offers all the customization options you need, the open source community can still help. Check out jPOS, a J2EE-compatible framework library suitable for inclusion in internal custom solutions. jPOS has an excellent set of hardware hooks, supports role-based security, and even has a thriving consulting practice to support it. If you've decided that developing your own POS system is the way to go, jPOS is definitely worth a close look. A possible minus is that the code is offered under an exclusive jPOS license, rather than any existing, OSI-accepted one.
Although not all applications are sustainable in an open source model, POS is a notable exception. The open source community provides not only a wide and flexible variety of options but also a support structure that really makes these applications usable -- even for small businesses.