I have a love hate relationship with XAML. XAML gives you a lot of control over layout, but it's often hard to tell what's going on. When your layouts rely on data I found the design tools in Visual Studio lacking. I got into a very time consuming workflow of: build app and review interface, tweak XAML, rebuild app and review interface again.
XAML Spy is a tool that has helped me a lot in the same way that Firebug changed the way I developed HTML, XAML Spy has made my XAML development workflow a lot smoother.
XAML Spy works with WPF, Silverlight and WinRT, but I've only used while developing for WinRT. Just like in Firebug you can inspect elements of your interface by hovering over them and XAML Spy will show you the complete XAML tree and highligh the element you're looking at. I've found this particulary useful when a template for a control has inserted XAML I wasn't expecting. It would be nice if you could find the source of inserted XAML, but I've not found a way to do that. Perhaps if it's possible, that will be added to a later version.
Possibly even nicer is that you can see all the properties for the XAML elements, change them and see the changes live. This was a revelation as it lets you make small tweaks and see the effects very quickly.
There are some other useful features like seeing the events that get fired, but I've needed those less so far.