I would use SPServices to fetch the data and emit the desired markup needed to make the marquee work.
Edit: very easy with SPServices and the givainc plugin referenced in the question comments.
<script type="text/javascript">
$(document).ready(function (){
var emptyResults = "<li>There are no current announcements.</li>";
var toShow = false;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Announcements",
CAMLViewFields: "<ViewFields><FieldRef Name='Title' /><FieldRef Name='Body' /><FieldRef Name='Modified' /></ViewFields>",
CAMLQuery: "<Query><OrderBy><FieldRef Name='Created' /></OrderBy>" +
"<Where><Or><Geq><FieldRef Name='Expires' /><Value Type='DateTime'>" +
"<Today /></Value></Geq><IsNull><FieldRef Name='Expires' /></IsNull></Or></Where></Query>",
completefunc: function (xData, Status) {
var itemCount = $(xData.responseXML).find("[nodeName='rs:data']").attr("ItemCount");
if(itemCount > 0){
toShow = true;
$(xData.responseXML).find("[nodeName='z:row']").each(function() {
var bodyHtml = "<li>" + $(this).attr("ows_Body");+ "</li>";
$("#marquee").append(bodyHtml);
});
}
else {
$("#marquee").append(emptyResults);
}
}
});
if (toShow == true) {
$("#marquee").marquee();
}
});
</script>
<ul id="marquee" class="marquee" />