Cases are generally used to track and manage any issues with your products and services reported by your clients, vendors, users etc. This module is often used by Customer Support. If a case is logged and there is a defect with your service (ie: if you sell software and there is a bug in the system), then a bug can be created which is linked to this case.
Projects are generally used to manage projects within your organization. They can be linked to Contacts, Users, Opportunities, or Cases.