1. Confidentiality: It is tough to control information leaks in your own company, and even tougher to control them in a third party. While you can't stop it, you can at least hold them liable for any leaks. One thing you may want confidential is the fact that YOU ARE outsourcing. Outsourcing can be a delicate topic, and who you choose may be even more critical, including your identification of a partner that has some specific key skills that you don't want your competitor to learn about.
2. IP Ownership: This is always a point of contention, but one thing you want to be clear about is who owns the intellectual property, and whether the people developing it can utilize parts, pieces, or the product as a whole to service other customers.
3. Staff Tenure: Ask how long they keep their developers on as employees before you choose your outsourcing house. Often times my clients outsource to some of the larger dev shops in countries such as the Brazil, Ukraine, India, Egypt, Poland and Romania. The big problem is in a market that is "booming" with offshore outsourcing (or even on-shore) is how long the people have been working for them. You want to see long tenures in the employees for a couple of reasons. You don't want to have to retrain people on a long project...particularly if that product/creation cycle takes more than 3 months this is a crucial issue. If you have a year or two year project, and the outsourcing development house is retraining staff every six months, that project will be delayed for each and every retraining cycle at least a month or two, if not more for very complex development projects.
4. Misunderstood requirements: It is very important to be clear about what it is you want developed. All too often specifics are not clearly defined as far as deliverables, nor are the processes and logic developed in between. Outsourcing takes a lot of management and thought process.
5. Cost Overruns: It is very common to have cost overruns with outsourcing projects. Regularly are the estimated amounts of time to produce a product and the actual very different, sometimes by multiples. Make sure you are clear about how this will be handled, and if you can get fixed price development, that has its advantages and disadvantages as well.
6. Cultural and Language issues: This is the toughest one to really understand what will be the impact on the project. It is important to have someone on YOUR staff who understands and can speak the local language and understands the local culture (particularly with offshore consultants). Different cultures operate different ways, communicate things differently, and have very different understandings of deadlines, goals, deliverables, and in some cases their role. Some countries have a cultural tendency to be very direction following....in that they do exactly what is asked, and don't question. Other cultures will have staff at all levels thinking about the project as a whole and how it works, and start punching holes and asking questions of why this way vs. that. You need to understand what the tendencies of a culture are so you can plan for them in how you approach the management of the project.
CIO magazine published a recent article of offshore outsourcing hotspots:
http://www.cio.com/article/511522/6_Offshore_Outsourcing_Hot_Spots_for_2010

