If this is going to be a first cruise, I would look for a good local cruise travel agent to work with. Try and get recommendations from people you know, who have cruised and been happy with their agents.
You can certainly shop your cruise on the net. Try CruiseMates Bargain Finder <http://www.cruisemates.com/findcruise/index.cfm>
Here u can post your info and have agents submit bids to you while your privacy is protected, unless you choose to contact the bidding agent.
Booking well in advance is usually advised; a good agent will be checking as your sail date nears, to ensure you receive a better price, should one happen to occur for your ship and sail date. Beware of 'order takers'. Your agent should be focusing on your expectations of a cruise vacation, asking you lots of questions, and the company for which she or he works should have a solid business record.