I trade in domain names, .com is always the best, followed by the country TLD that you would be trading in ie .co.uk for England, .de for Germany.
.net is usually associated with business or corporations.
Hyphens are ok for keywords, but in general i wouldn't buy them for re-sale.
Typo's can get traffic to your site if you get a good one.
What you must do is think "What would i type into a search engine if i was looking for that product/service" and try to get as close to that as possible.