No hay un significado definido por el lenguaje; es solo una convención que algunas personas usan para distinguir las variables de instancia de las variables locales. Otras variaciones incluyen m_foo (y s_foo o g_foo o variables estáticas) o mFoo; alternativamente, a algunas personas les gusta prefijar las variables locales (y los parámetros) en lugar de las variables de instancia.
Personalmente, no uso prefijos como este, pero es una opción de estilo. Siempre que todos los que trabajan en el mismo proyecto sean consistentes, generalmente no es un gran problema. He visto un código horriblemente código inconsistente aunque ...
De manera más general, para campos de instancias no públicos (que también incluyen los protegidos y los internos). – Noldorin