Buses to Barcelona are usually cheaper than trains, and there are extensive routes throughout Spain and Europe run by various different bus companies.
The main Barcelona bus station is:
Estació del Nord
Tel +34 902 260 606
Carrer d'Ali Bei 80
Metro: Arc de Triomf
Another smaller station - Estació d'Autobuses de Sants - is located right behind the Sants train station on Plaça de Joan Peiró.
With so many different bus companies, it can be difficult to figure out timetables and prices. It's recommendable to go to the station a day before traveling if you're planning on taking the bus to a popular destination, as things will be clearer at the station itself.
There is also a great website, www.movelia.es, which has a database of all the Spanish bus companies, and if Movelia is unable to locate the information a pop-up comes up telling you where to find it.
Note: don't be alarmed if you don't see a bathroom on the bus!
Bus drivers are required by law to pull into a rest stop every few hours, where you are given time to use the restrooms and grab a bite to eat.