I used to work for an SEO agency so know quite a lot on the subject, will be happy to help

Firstly I'll talk about on site:

- Page Titles - Keep below 60-80 characters. They must be unique to every page of your site. Try and get your keywords related to that page in your title tag, but make sure it reads well.
- Meta Description/Keywords - It's thought that Google disregards these but who knows for sure? It's good practice to include them regardless. Keep short (less than 25 words).
- Content - The most important on-site element!! Each page should have at the very least 350 words of keyword rich content. Don't stuff it with keywords, again it needs to read well. Make sure you have some form of dynamic content (news, blog, articles) and update it regularly. Google loves this.
- Internal linking - Link to other areas of your site from within your sites content. This helps search engines discover other parts of your site.
- Other - Sitemap.xml, robots.txt, image alt tags. You can create a site map here. Create a robots file here

Off site, there is so much to say here but:

- Don't overdo it on the keyword anchor text. Especially since Googles penguin update. Mix it up with uses of brand names, 'click here', and 'naked links' (the url itself www.test.com)
- Quality over quantity. It's better to have a handful of quality links rather than a ton of low quality, spammy links!
- Link relevance. Try and build links to sites related to your niche.

I hope this helps. Let me know if you have any questions. :-)