http://v-consult.be/2011/05/26/recover-sa-password-microsoft-sql-server-2008-r2/
http://www.mssqltips.com/sqlservertip/2682/recover-access-to-a-sql-server-instance/
General steps: change to single user, restart SQL server, create a new SysAdmin ID, restart in multiuser, use new SqlAdmin to reset sa password.
Detailed steps:
1) Open SQL Server Configuration Manager
2) Stop all services, including SSIS, SSRS, and SQL agent
3) Right-click properties on the instance, usually 'SQL Server (MSSQLSERVER)'
4) On the Advanced tab, prefix the Startup parameters with '-m;', e.g. '-m;-dC:\Program Files\Microsoft..."
5) Start the SQL instance service.
6) Start the Command Prompt, and execute SQLCMD.
Type the following commands at the 1> and 2> prompts.
1> CREATE LOGIN sabackup WITH PASSWORD = 'sabackup1'
2> go
1> sp_addsrvrolemember 'sabackup','sysadmin'
2> go
1> exit
7) Stop the SQL server instance again, revert the Startup parameters, and restart the instance.
8) Use SQL Server Management Studio to change the sa password.
Or, from the 2nd link, a more elegant solution is to login as a local administrator and then use PsExec from PSTools to launch the SSMS as the Local System account:
PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
... and then edit then edit the SA password.