Thanks to everyone who responded! I've combined bits from several suggestions and added a bit of my own and found a solution which works well for me - and all from within QGis!
I first ran a PostGis SELECT to find the points which have the right common attributes and lie within x km of each other:
SELECT DISTINCT s1.postcode,s1.the_geom, s1.gid FROM broadband_data AS s1 JOIN broadband_data AS s2 ON ST_DWithin(s1.the_geom, s2.the_geom,1000) WHERE s1.postcode != s2.postcode AND s1.fastest_broadband <= 2000
(Pretty much straight from Manning's very good PostGis in Action book, only adding a self-join)
I then loaded Carson Farmer's ManageR plugin, and imported the layer. From here I followed the suggested PAM clustering process here, and exported the result to a shape file, on which Convex Hulls were calculated in seconds using fTools (Carson does get around!).
Thanks for all the help!!