How do you choose?
An agency is an external business who you pay for their services. Normally a better option as they have years of experience and have a better footing in the industry and are more familiar with the workings.
An consultant is someone who will come and work for your company and work specifically with you to improve your business marketing strategy and how it can be improved.
But who is best?
No one really knows every business is different and has a prefered option which they use and works best for their business.