Yes, there are more complex ways of doing this when you factor in Roles \ Schemas \ Users \ Logins but you can simply do this.
1. GRANT the execute permission on the procedures \ functions you want the user to be able to execute.
2. Ensure the user has no permissions on the underlying tables
MCITP SQL 2005, MCSA SQL 2012