Like the name implies Firewalls are designed to permit, deny, encrypt, and decrypt any information that travels through (or domain to domain). The great thing about Firewalls is the creation of NAT (Network Address Translation). With NAT you can hide yourself behind private addresses and they can also be used by proxies to help contain corrupt information from spreading to fast as well as help regulate traffic, since it can filter out or contain information. Firewalls can be a great tool or a useless tool; it all depends on how you maintain them. Most people that just run default probably are not making the most use of their firewalls. If you modify them or use advanced tools firewalls can do quite a lot of things to help protect you from the common problems of the computer world.
Proxy Servers work by requesting information from other servers to be sent back to the requested client. They help speed of traffic and help contain harmful information by caching information thus making it more readily available rather than accessing the required server on the spot. It is a nice advantage, because without an active connection the odds of harmful information getting in are reduced quite a bit. Still when looking at proxy servers, there are different types with different abilities. There are caching proxies who do what I mentioned above, and there are web proxies that focus caching web information to improve load time rather caching common resources like cache proxies. There are content filtering proxies hostile proxies that can eavesdrop on flowing information, anonymous proxies. The list of proxy types go on and on, because all a proxy server really is are something that catches and find information, so if you have a goal you can create a proxy to run it.