You can apply on your own (but you will have a "little bit" of a hard time knowing which papers to submit etc...), of course it is better if you know a friend or relative who has done it before so he can tell you the exact papers you need. You can read about it online to know how to prepare for the interview etc...
An immigration office (lawyer and staff) would tell you exactly what you need and prepare you for next step, however they charge considerably (around 1000$ for every step, there are around 4-5 steps: initial submission, getting the file number, followup papers submission, medical test, interview ....)
But I have to repeat that it can be done alone, I know alot of people who have done it and there's alot of information online.
Each country has its own process, this is the one for Canada:
http://www.cic.gc.ca/english/citizenship/index.asp
There's an initial eligibility test which you can do online.