I would recommend you use a command parameter as you mentioned. So in your xaml do something like this:
<Button x:name="myButton" CommandParameter="{Binding Title}" Click="myButton_Click"/>
And in your C# code something like this:
private void myButton_Click(object sender, RoutedEventArgs e)
{
    Button _myButton = (Button)sender;
    string value = _myButton.CommandParameter.ToString();
}
Really it's pretty similar to Teemu's answer although I must admit I haven't used the Tag
element before. According to the documentation on MSDN, the Tag element should work pretty nicely as it can store custom information that you can access in your code behind (or viewmodel).