A forward proxy acts a gateway for a client’s browser, sending HTTP requests on the client’s behalf to the Internet. The proxy protects your inside network by hiding the actual client’s IP address and using its own instead. When an outside HTTP server receives the request, it sees the requester's address as originating from the proxy server, not from the actual client.So in essence a proxy has capability of NAT and also implements additional features like caching etc...
A Reverse Proxy proxies on behalf of the backend HTTP server not on behalf the
outside client’s request, hence the term reverse. It is an application proxy for servers using the
HTTP protocol. It acts as a gateway to an HTTP server or HTTP server farm by acting as the
final IP address for requests from the outside. The firewall works tightly with the Reverse Proxy
to help ensure that only the Reverse Proxy can access the HTTP servers hidden behind it.
From the outside client’s point of view, the Reverse Proxy is the actual HTTP server.
In other terms it can be a Proxy with capability of a firewall in specific a "Web application Firewall"

http://www.sans.org/reading_room/whitepapers/webservers/302.php
