I have searched a lot, and I did not see a complete tutorial on how to work with plugins. Here it is, and I hope I'm not missing something, or saying something wrong.
In the registration tool package, there is a walkthrough specifically for the Registration Tool. Worth to take the look at it.
Here is how to create, register and use a plugins from the code to the deployment, using the new Plugin Registration Tools
First, the plug in.
For the purpose of demonstration, I simply used the accountcreateplugin provided with the SDK.
The code of the AccountCreateHandler Class can be found on MSDN.
The important point in this code is the Verify Execution Context part which is verifying that there is a target parameter, and that the target entity is an Account.
Add reference to the Microsoft.Crm.Sdk and Microsoft.Crm.SdkTypeProxy assemblies, and you can compile it. Do not forget to go in the project signing tab and to strong name the assembly. It is required.

Second, the assembly registration
Using the new Plugin Registration Tool version 2, access to your CRM 4.0 Server, and select the organization in which you want to deploy the plugin. Like everything else, the plugins are only for one Organization.
Once you access the Organization, you will see the currently registered plugins. By default, only one is there, the Microsoft.Crm.ObjectModel assembly, that is used to call CRM 3.0 callouts.
Here you should Register the Assembly generated in the first step,
You select the assembly, and notice that the plugin should be displayed, that is because it's a plugin, if you have an assembly contain Workflow Actions, or multiple plugins, the will be all displayed.
Third the step registration
Here is the more complex step, because it is not intuitive, there is no drop down for the possible values.
- The message is the message that will trigger the plugin.
- The primary entity is the entity that will trigger the plugin.
- The secondary entity is only when the plugin should be fired for an event requiring two entity, like the Set Related Message. Here it is not required.
- Filtering Attributes, set the attributes that will fire the plugin, defaulted to all.
- The plugin should be automatically filed.
- The Description is generated.
- The User's context is in the case that the plugin is doing something that the current user do not have the right to do. (If you want to control some part of CRM)
- Execution Order should be changed to priories steps.
- In the stage of execution you should select if the plugin is executed "after or before the main operation, outside the transaction."
- Execution mode for asynchronous or synchronous operation
- The triggering pipeline is a little more complex, but the general rule, according to the SDK is "If you want your plug-in to run regardless of whether a Web service call or an (internal) platform call initiated the pipeline, register your plug-in in a child pipeline. "
- Server and offline, if you want the plugin to be deployed on the server and or on the offline client (outlook).
- Secure Configuration, or unsecureconfiguration, those are passed to the plugin's constructor. The only difference is the visibility, everybody can see the first, but only user's with the PrvRead on this entity can view the second. Those are not encrypted.
Fourth, the image registration
In this example, we do not need images, but this is required when we want more than the given.
After restarting the Asynchronous service, you are done!
-f.