The answer is equally simple: It depends. Different public relations agencies will charge different fees, so costs will vary depending on the type of publicist you decide to hire.
As an independent public relations specialist, I work one-on-one with clients directly and usually only handle one or two clients at a time. I like to meet with clients to go over their requirements, and the extent of my services is determined by what they want in the way of publicity. Some just want a press release and/or limited media coverage for a one-day event; others want speaking engagements, a book tour, a blog tour, radio and TV coverage, etc. I charge $50 per hour, and usually work about ten-fifteen hours per week for each of my clients. I've had clients who contract for as little as five hours of work, and others who I work with for several months. I keep detailed time sheets that I send out every two weeks, and I always do only what clients have contracted with me to do. Most of my authors are self-published, although I have a couple who have published with larger houses and want to do a little more than what's covered in their publisher's publicity contract.
But, even those who can't afford to exhibit at book expos and create film trailers can still do a lot with a little publicity. I recommend that most authors at least have a professional press release done, and do some book signings, even if they're local. In addition to creating buzz and making personal contacts with readers, the writer can get some additional mileage out of those events by getting his/her books stocked in the store and placing photos from the signing on his/her website. I also think a blog tour is a relatively easy way to get noticed, although it can be time-consuming to set up (I research appropriate bloggers and their sites, and then contact them directly regarding participation in the tour).