While the specifics vary from project to project -- customers wanting a Web site will have needs far different from, say, customers wanting you to write a little app to perform a specific and limited technical task -- broadly speaking, the customer wants to feel like you understand two things: what they need right now now, and where they're trying to go with it.
Basically, that means listening. Ask about what they do, ask about what they're looking for, and think about (silently) whether what they're asking for really is what it sounds like they need, because part of your responsibility as a consultant is to consult -- to determine whether the thing they're asking for is appropriate, or whether there's an alternative option or approach that might serve them better in the long term. Sometimes clients think they want something simple, but don't understand the way "simple" can end up painting them into corners. Just ask, listen, and think about the bigger picture. If they believe you truly care about their success, you'll usually get the gig.
Alain Weiss's book Getting Started in Consulting is a great resource, too. Check it out -- I recommend it highly.
As far as talking money goes, the prevailing wisdom seems to be to avoid talking numbers -- but I happen to find something disingenuous about this, because while it's true you never know what something will cost before you know what the details are, if you have some experience, you probably do have some idea what it'll cost yourself, and there's no reason not to share that with the customer, other than to protect yourself, or to avoid scaring off the customer.
The customer wants to know what it'll cost, and if you know, you should tell them -- issue caveats, of course, tell them the devil's in the details, but if you know the project they're describing usually takes, oh, such-and-such time to build, and your gut tells you it'd be, roughly, five grand as opposed to two, or fifteen rather than five, tell them. In my experience, it rarely comes as a surprise, and if it does -- if the customer freaks out and says something like, "Wow, I had no idea it cost that much to do something like this," then you'll probably have saved each other a lot of time and headache broaching the subject earlier rather than later. If you treat it as a courtesy respectful of what they genuinely want to know, it's fine.
Lastly, I have to say that Will Dean is completely wrong -- you should never, ever mislead any client into thinking you're the appropriate person for a job you're not appropriate for. If you're not an expert, say so; if it calls for Java and you don't know Java, tell them -- don't lie by omission. That's extremely bad business, and it'll bite you in the butt one day if you're not careful.