What are some good general principles to keep in mind when designing and developing mobile application with touch interfaces?
Tap always works; it's the way to interact with a touch screen. If I can't tap an item it might lead to confusion; at the very least a tap gesture should bring up a tool tip stating how I should interact with an object--tell me to drag it, long click, tap something else.
Double tap is harder to discover and I rarely see it. Ever since Windows Tablet Edition double tap has been somewhat dubious even with a stylus (which is more precise than touch). Touch is prone to an offset error so double tap just doubles the odds of hitting an incorrect target as well. I recommend against it unless it's a game or something where you can give explicit directions to use double tap and there are no alternative interactions.
Long press is common on Android and Windows Tablet Edition and I find it less hard to discover (since I know it exists!) but it's not common on iPhone. Don't make any vital actions use long press but it can be nice for advanced features; for example on Android it's used to modify icons from your homescreen. Many people don't even know that's possible, and their phones work great without the feature. For those that use it, it's quite nice.
Without more info that's all the more advice I can give.
Just to name a few:
Do not use hover images.
Be aware of the "fat finger problem" (i.e. do not place a confirmation box right under the box users just pressed since they won't see it) In general put your navigation buttons under the content (as opposed to normal desktop navigation)
Keep in mind that screens can be viewed both in landscape and portrait mode.
Make sure that scroll gesture wipes are not accidentally picked up as touch interaction.
As DAO1 states, your question is too broad. Narrow it done to a spefic application. Each domain has it's own UI requirements.