There's quite a bit of documentation in books online, as well as blog posts on using the new features in 2012 SSIS.
The $ sign is a new addition for accessing project and package scoped parameters.
Variables, which existed before parameters, are accessed via @[User::<variablename>] and can have package, control flow, or even task level scoping.
Accessing a project level parameter:
Accessing a package level parameter:
Lots of beneficial uses as long as you are willing to go the route of project deployments and not atomic package deployments.
I.E. use a project level parameter for your connection strings for your project connection managers and you no longer have to worry about changing them in each package. Just add the project connection manager once to a package in a project, right click it and select parameterize and specify your project parameter and that's it. Now when you use it in other packages, it's already configured.
Also very useful for dynamically setting working directories for separating out your log files, raw files, and pending and processed files.