Actually many HTTP proxies can be used for a wide range of other stuff as well, that depends on the proxy type.
Also HTTP proxies, depending on their design, can speedup your internet by using optimized communication to the webserver and precaching and caching data.
So summary: SOCKS is a protocol that allows nearly every type or application to be tunneled through it while HTTP is specialized for HTTP but can sometimes be used fore other stuff as well.
Also HTTP proxies can be used to increase or decrease the anonymity and privacy you gain through them as they can change parts of the content that is transmitted, SOCKS is just plain data transfer without adding or removing anything of the content transmitted.