Punctuate the following sentence:

How is the weather today Sam said John.
I think the punctuated sentence would be:
"How is the weather today Sam?" said John.
I am not sure if there is a comma before Sam and said. Am I correct? Please help!

No, a comma is not needed before "said John." A comma is needed elsewhere, though. Your use of quotation marks and the question mark are correct.

Then is it "How is the weather today, Sam?" said John.

Yep! That's it! :)

Is there any particular rule for why there is a comma after today?

Yes. Sam is like a parenthetical, telling who the question is addressed to. "Will you help me, Ruth, with this project?" Or, "How is the weather today, Sam?"

But why isn't a comma required before "said John?"

I don't know if you will see this so many hours later (I logged off late last night). A comma is not necessary there because the quotation is already punctuated with a question mark (could be an exclamation mark, if appropriate).