Minako has a great post about the difference between 「べき」 and 「はず」: http://nihongodaybyday.blogspot.com/2011/09/blog-post.html
I’ve been meaning to write about this in a post sitting in my draft folder since early 2008. Oops. But now you can read about it and get some reading practice at the same time. Like she says, the only reason English speakers have a reason to confuse the two is because they happen to translate to the same word in English: “should”. But that word itself has many different meanings so it’s yet another example of why you should avoid translating to English as much as possible.
I would add that 「べき」 is a fairly formal phrase to use when making suggestions. So you normally wouldn’t use it to suggest eating more vegetables, for example. In a conversational setting, you should stick with 「～方がいい」. In English, it’s more formal to say “it’s better to…” as compared to “you should…” but it’s the exact opposite for Japanese.
A bit of uncertainty
I would also add that 「はず」 is not always used with absolute certainty. In English, people often say “supposed to” to try to avoid accountability and 「はず」 can be used the same way.
Ａ：Huh? No word from Tanaka-san?
Ｂ：That’s right. Even though (he/she) was supposed to contact (me) by yesterday.