Yes, you can renew it at any time. Here's how to do it:
gpg --edit-key (key id)
Now you're in the gpg console. (By default, you're working on the primary key.) If you need to update a sub-key:
gpg> key 1
Now you can set the expiration for the selected key:
Now that you've updated your key, you can send it out:
gpg --keyserver pgp.mit.edu --send-keys (key id)
And, yes, having an expiration date for your keys is a very good idea. You should never really have a key with no expiration date. If it's compromised, it could be used forever.