I agree that you need to promote the platform to the niches (e.g. retrogamers) instead of the masses, but that's mainly because the things that RISC OS is good at is not really what the masses use computers for. For instance, vector graphics and DTP have always been pretty well served on RISC OS, but who really uses that (OK we all do because we're used to it, but most people would just put up with Word and MSPaint!) Then again, why buy an Iyonix to run Elite when you can use it via an emulator or even buy a native PC/console version (think there is even an OSS clone for Linux).
Most people use computers for the internet, we are just getting some decent browsers and have always had good Email clients, but that other crap like Flash, streaming audio and video aren't wonderfully supported.
You can't really attract the programmers as it's a very non-portable platform (less so with GCCSDK now) and these days if you don't have good Java or C# (shudder!) you won't get people's attention, Hell we don't even have a decent C++ IDE, most of RISC OS's best programming tools are for BASIC!
Some of the RISC OS problem is from people who used it at school, and assume we haven't moved on, it's a bit sad that the only people who ever recognise RISC OS are people whose last experience of it was RO2 A310's, or only ever used some single-tasking ported from the BBCB edutainment title which ran equally well on an RM Nimbus.
Educating people is the key. Most people don't know or don't care that there are alternatives to Windows, jees most people haven't even heard of Linux let alone RISC OS, or haven't heard of Firefox as a MSIE alternative.
Price is obviously important, you can get a bloody good PC for 300-400ukp or a Mac for 500ukp, or an OK-ish Iyonix/A9 for 700-1000ukp, and hey, people still don't buy Macs because of the price....
I dunno, I'm kinda out of ideas, and just think if we haven't hit anywhere near mainstream during the Acorn days, how are we going to do it now?