Linq is cool.
var types = from type in System.Reflection.Assembly.GetExecutingAssembly().GetTypes()
let attr = Attribute.GetCustomAttribute(type, typeof(PreferencePageAttribute), true)
where attr != null
select new { Attribute = attr as PreferencePageAttribute, Type = type };