I think for a wide variety of types, a simple Convert.ChangeType
will do the trick:
XElement expression = GetMyCurrentMember();
//<member type="System.Int32">5</member>
var formatProv = CultureInfo.InvariantCulture;
var type = Type.GetType(expression.Attribute("type").Value, false, true);
var value = Convert.ChangeType(expression.Value, type, formatProv);
return Expression.Constant(value, type);
Please note that by providing a format provider you can explicitly specify the culture you want to use in the conversion.